nodejs+express+mongodb入门

  • 1.下载nodejs
  • 2.使用npm install -g express来下载express模块
  • 3.然后可以使用express -h来查看一下express的帮助
  • 4.使用express testnode来生成初始化的项目
  • 5.进入testnode项目文件中,使用npm install来进行项目依赖的安装
  • 6.最后使用npm start来启动服务。在浏览器窗口输入localhost:3000就可以查看到欢迎页面

要连接mongodb数据库我们必须在电脑上已经下载好了mongodb的数据库,可以到mongodb的官网进行下载

  • 1.到mongodb的官网下载mongodb进行安装
  • 2.改变testnode项目中的package.json文件,在dependencies中加入"mongodb":"*",
    "monk":"*"
    ,然后再重新的使用npm installl安装一下依赖项目
  • 3.开始启动mongodb,在testnode项目目录下创建一个data文件夹,然后使用cmd进入mongodb的安装目录,执行:mongod --dbpath e:\node\testnode\data,执行完这条命令后mongo已经启动,然后在mongodb的安装安装目录下执行mongo就可以进入mongodb的客户端,然后就可以进入数据库的操作了。mongodb的操作流程:
    1.使用use testnode //这条命令表示使用use数据库,没有就会创建
    2.向testnode中添加数据执行
    db.usercollection.insert({ “username” : “byer”, “email” : “byer@byer.com” })
    3.使用
    db.usercollection.find().pretty()命令查看
    4.插入多条数据
    newstuff = [{ “username” : “byer2”, “email” : “byer2@byer2.com” }, { “username” : “byer3”, “email” : “byer3@byer3.com” }]
    db.usercollection.insert(newstuff);
    5.接下来我们要在入口文件中添加几行代码来连接mongodb了。在app.js中添加如下代码
    var mongo = require(‘mongodb’);
    var monk = require(‘monk’);
    var db = monk(‘localhost:27017/testnode’)`
    6.然后我们新建一个路由来展示从数据库中取出来的数据,代码示例如下:
var list = require('./routes/list');
app.use('/list',list.userMongo(db));
7.然后我们在router文件中加入list.js,在文件中写入如下代码:
exports.userMongo = function(db) {
    return function(req, res) {
        var collection = db.get('usercollection');
        collection.find({},{},function(e,docs){
            res.render('list', {
                "userlist" : docs
            });
        });
    };
};
8.现在我们在views目录下来新建list.jade文件,写入如下代码:
extends layout

block content
    h1.
        User List
    ul
        each user, i in userlist
            li
                a(href="mailto:#{user.email}")= user.username

现在我们可以重启服务,在浏览中输入localhost:3000/list查看从数据库中取出来的数据在页面的呈现了。

向mongodb数据库中写入数据

  1. 我们先得新建一个路由,让用户可以访问这个路由进入数据的填写,在app.js中写入如下代码:
var commit = require('./routes/commit');
app.use('/commit',commit);
2. 然后我们在routes下面新建commit.js,写入如下代码:
var express = require('express');
var router = express.Router();
router.get('/',function(req,res,next){
    res.render('commit',{title: 'Add user'})
})
module.exports = router;
3.在views下面新建commit.jade文件,写入如下代码:
extends layout

block content
    h1= title
    form#formAddUser(name="adduser",method="post",action="/adduser")//此处使用post将表单提交到adduser中,所以我们得新建一个post路由来接收用户提交的数据,即下面的步骤
        input#inputUserName(type="text", placeholder="username", name="username")
        input#inputUserEmail(type="text", placeholder="useremail", name="useremail")
        button#btnSubmit(type="submit") submit
4.在app.js中新建post路由,代码如下:
var adduser = require('./routes/adduser');
app.post('/adduser',adduser.adduser(db));
5.在routes中新建adduser.js,写入代码如下:
exports.adduser = function(db) {
    return function(req, res) {

        // Get our form values. These rely on the "name" attributes
        var userName = req.body.username;
        var userEmail = req.body.useremail;

        // Set our collection
        var collection = db.get('usercollection');

        // Submit to the DB
        collection.insert({
            "username" : userName,
            "email" : userEmail
        }, function (err, doc) {
            if (err) {
                // If it failed, return error
                res.send("There was a problem adding the information to the database.");
            }
            else {
                // If it worked, set the header so the address bar doesn't still say /adduser
                res.location("list");
                // And forward to success page
                res.redirect("list");//在成功添加到数据库后,转发回的list页面,在那里将看到新添加的用户。
            }
        });

    }
}

这样就完成了nodejs+express+mongodb的读取数据的入门了!