使用 ("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\dataMongo 已经启动。
再次在该目录执行:
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"
}
我们将输出如下结果:
<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
});
});
};
};