node+MongoDB+实战

写于头里

有关 Nodejs,相信看这篇之章的同伴就了解了累累,有一些了 Nodejs
基础。但是 Nodejs 如何用,如何用 Nodejs
搭建在服务器上,我想多侣想知道,在此享受自己的心得体会,希望对君的行事学习有助。
服务器的搭建产生成百上千种,比如 Java,PHP,而自首选
Node.js。为什么?因为抢。Node.js
入门快,相比另语言更爱进入后台的世界;安装快,配置简单;命令简单易学。但是对于多童鞋来说,学习了
Node.js 的基础知识,却非亮堂该如何利用 Node.js ,如何履。

这次我虽拉扯童鞋快速入门,尽快使起 Node.js,在实战中学习
Node.js,对工作与习还起再次好之辅助。

1、利用基于 Node.js 的 Express 快速搭建项目。
2、介绍 Express 项目组织。
3、学习如何连接 MongoDB 数据库,利用 Node.js 操作 MongoDB 数据库。
4、Express 的型是 .jade 页面,如何转也 .html 页面。
5、学习怎么改目录结构,使其好当真实的类型被使用

1.运用 Nodejs 快速搭建项目

第一安装 Express

npm install express-generator -g    

用Express快速生成项目

express demo
cd demo
npm install

运转项目,检测是否搭建成功

npm run start

于浏览器打开http://localhost:3000
,这个地方是Express快速搭建项目默认的地址,在bin目录下之www文件里,如图

店家微信截图_ef9c5153-4d13-463c-94e7-be4170e11f7a.png

列搭建完毕,是勿是好快。这虽是自爱好Node的地方

2.Express目录结构介绍

  • bin:项目之起步文件,默认www
  • node_modules:存放项目具有的赖库,默认body-parser、cookie-parser、debug、jade、express、morgan、serve-favicon。
  • public:静态资源文件夹,默认images、javascripts、stylesheets。
  • routes:路由于文件
  • views:页面文件,jade模板,默认error.jade、index.jade、layout.jade。本人平常用之html模板,下面将提下如何改
  • package.json:项目依赖配置,做过java后台的,可以与maven对比下,差不多。
  • app.js:应用中心配置文件,项目进口,程序入口。

enter image description here

3.连接MongDB数据库

开辟终端,运行命令

 npm install mongolass -s

在bin目录下上加文件,mongo_base.js,里面的代码如下

const Mongolass = require('mongolass');
const mongolass = new Mongolass();

exports.db = { mongolass: mongolass };
const db = exports.db;

let connected = [];
exports.OnConnected = function (fn) {
    if (fn) {
        connected.push(fn);
    }
};

//'mongodb://localhost:27017/testdb'
exports.connectDB = function (conn) {
    return mongolass.connect(conn).then(function () {

        //================USER RELATED==================
        db.test = mongolass.model('test', {
            name:{type:'string'},

        });
        db.test.insert({name:'test'}).exec()

        connected.forEach(function (oneFn) {
            if (oneFn) {
                oneFn();
            }
        });

    });

};

当www文件里上加代码

require('./mongo_base').connectDB('mongodb://localhost:27017/testdb');

咱俩的MongDB连接成功。 启动电脑的MongDB,然后又开项目。
下面检查是不是我们遂了。 打开终端,然后运行命令,进入到mongdb。

mongo

接下来运行命令,查看是否上加上数据库testdb

show dbs

enter image description here

哼了,我们的种MongoDB数据库添加了。

4.Express底类是.jade页面,如何改也.html的页面。

入根目录,输入指令

npm install ejs -s

找到根目录下的app.js,加入代码

var ejs = require('ejs');  //引入的ejs插件
app.engine('html', ejs.__express);//设置html引擎
app.set('view engine', 'html');//设置视图引擎

当app.js里,去丢代码

app.set('view engine', 'jade');

更开服务,在view里添加html页面,同时于routes里或者当app.js里添加控制器,就得拜html文件了。实例代码如下,在浏览器访问http://localhost:3000/b

enter image description here

5.怎样修改目录,使该得以于实际的类面临利用

每当是类型被我们纪念以mvc的模式开发。那么哪些修改目录也,可以达成我们的目的。下面注意自己说的,新建目录及新建文件,不要打瞎。

1.先是新建目录,auth,把上面的修建的mongo_base.js放在这目录里。然后新建文件index.js,代码如下

let MG = require('./mongo_base.js');

exports.db = MG.db;
exports.connectDB = MG.connectDB;
exports.OnConnected = MG.OnConnected;

2.修改bin目录下www文件里的关于mongo_base.js的引入调用。改后如下

enter image description here

3.以routes下新建两独目录controller,db。

  • controller:就是咱的mvc的c,用于控制我们所有程序,我们的逻辑代码在这里修。
  • db:就是咱们的mvc中之m,用于数据库表的创造。

拿index.js、users.js放在controller的目里。请留意修改app.js代码里关于这点儿只文本之路径引入。

4.于db目录下新建文件user.js。用于在数据库存储用户。修改后目录如下图。

enter image description here

5.每当user.js里编写代码

const db = require('../../auth').db;
exports.OnConnected = require('../../auth').OnConnected;

const onConnect = function () {
    const mongolass = db.mongolass;

    //===============DEVICE RELATED==================

    // socket.io room. Connect it with `http://{server}/{roomId}`
    db.user = mongolass.model('user', {
        nickname:{type:'string'},
    });

};

exports.OnConnected(onConnect);
exports.db = db;

6.窜controller下的index.js,修改后只要下

var express = require('express');
var router = express.Router();
const MG = require('../db/user');
let dbTable;
MG.OnConnected(function () {
    dbTable = MG.db.user;
});

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
router.get('/test', function(req, res, next) {
       return dbTable.insert({nickname:'abc'}).exec().then(function () {
           res.send('存储成功');
       })

});

module.exports = router;

7.双重开动项目,在浏览器被输入http://localhost:3000/test
,如下图!

enter image description here

写于背后

旋即首文章每写一步,我都见面友善运行,希望见到就首稿子的童鞋可以入门express的实战,并在实战中开创自己之架构。

相关文章