JSON

Node.js + Express + MongoDB教程(2)

字号+ 作者:H5之家 来源:H5之家 2015-11-11 10:30 我要评论( )

使用(extends)继承Jade的模板layout,定义了一个content块:title是我们在index.js路由中定义的,改变为下面一行: p Hello, World! Welcome to #{title}保存后重启启动node.js,用ctrl-c中断,再输入node app.js

使用 ("extends") 继承Jade的模板layout,定义了一个content 块:title是我们在index.js路由中定义的,改变为下面一行:

p Hello, World! Welcome to #{title} 保存后重启启动node.js,用ctrl-c中断,再输入 node app.js

输入:3000/helloworld 输出 :

 

创建从数据库读取功能 STEP 1 – 安装 MONGODB

从下载

STEP 2 – 运行 MONGOD 和 MONGO

在nodetest1 创建一个data目录,进入mongoDB安装目录假设 C:\mongodb,执行:

mongod --dbpath c:\node\nodetest1\data

Mongo 已经启动。

再次在该目录执行:

mongo

输出:

c:\mongo>mongo
MongoDB shell version: 2.4.5
connecting to: test

你会看到它提到已经建立一个连接。好吧,你已经得到了MongoDB的启动和运行,你已经连接到它的客户端。我们将使用这个客户端手动操作数据库,

STEP 3 – 创建 A DATABASE

在mongoDB控制台输入:

use nodetest1 这样我们创建了nodetest1, STEP 4 – 加入数据

MongoDB是使用JSON,我们这是一个用户名和电子邮件地址的简单的数据库,数据看来如下:

{
"_id" : 1234,
"username" : "cwbuecheler",
"email" : "cwbuecheler@nospam.com"
}

在控制台输入:

db.usercollection.insert({ "username" : "testuser1", "email" : "testuser1@testdomain.com" })

认为“db”代表我们的数据库,其中如上文所述,我们已经定义为“nodetest1”。

下面输入:

db.usercollection.find().pretty()

“usercollection”部分是我们的集合。请注意,这里我们没有创建了“usercollection”集合。因为我们第一次添加它时,它会被自动创建。上面命令返回:

{
"_id" : ObjectId("5202b481d2184d390cbf6eca"),
"username" : "testuser1",
"email" : "testuser1@testdomain.com"
}

ObjectId是MongoDB自动产生的。现在我们有了一个记录,可以增加更多:

newstuff = [{ "username" : "testuser2", "email" : "testuser2@testdomain.com" }, { "username" : "testuser3", "email" : "testuser3@testdomain.com" }]
db.usercollection.insert(newstuff);

输出结果:

{
        "_id" : ObjectId("5202b481d2184d390cbf6eca"),
        "username" : "testuser1",
        "email" : "testuser1@testdomain.com"
}
{
        "_id" : ObjectId("5202b49ad2184d390cbf6ecb"),
        "username" : "testuser2",
        "email" : "testuser2@testdomain.com"
}
{
        "_id" : ObjectId("5202b49ad2184d390cbf6ecc"),
        "username" : "testuser3",
        "email" : "testuser3@testdomain.com"
}

STEP 5 – HOOK MONGO连接到 NODE

我们将输出如下结果:

<ul>
    <li><a href="mailto:testuser1@testdomain.com">testuser1</a></li>
    <li><a href="mailto:testuser2@testdomain.com">testuser2</a></li>
    <li><a href="mailto:testuser3@testdomain.com">testuser3</a></li>
</ul>

打开C:\node\nodetest1\app.js  头部如下:

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

加入三行:

 

// New Code
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');

使用Monk 实现nodejs和mongo交互。mongoDB在localhost:27017/nodetest1,是我们之前创建的数据库。

再加入下面几行:

app.get('http://www.jdon.com/', routes.index);
app.get('/users', user.list);
app.get('/helloworld', routes.helloworld);

最后加入下面一行:

app.get('/userlist', routes.userlist(db));

当用户浏览/userlist,我们将我们的数据库对象db传入userlist 路由,但是我们还没有userlist 路由,下面我们来创建:

STEP 6 – 从MONGO拉出数据显示

打开C:\node\nodetest1\routes\index.js ,加入:

exports.userlist = function(db) {
    return function(req, res) {
        var collection = db.get('usercollection');
        collection.find({},{},function(e,docs){
            res.render('userlist', {
                "userlist" : docs
            });
        });
    };
};

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Meteor node.js 复制(copy)文件的方法

    Meteor node.js 复制(copy)文件的方法

    2016-01-25 19:50

  • express json

    express json

    2015-11-23 19:06

  • Express 3.0新手指南入门教程

    Express 3.0新手指南入门教程

    2015-11-23 13:11

  • 针对JSON数据类型设计的数据仓库--甲骨文培训

    针对JSON数据类型设计的数据仓库--甲骨文培训

    2015-11-21 11:58

网友点评