用node设置好路由之后,只要请求了相应路径,就会返回相应的模板(页面);显然单纯的静态页面是太单调了,怎么实现在返回给客户端的页面中加入数据呢?
首先我们需要在mongo下建立一个数据库,数据库中有相应的表。表中有相应的数据;
mongo 127.0.0.1:12345/imooc
连接到本地数据库;分别是主机名称和mongodb端口/imooc数据库名称;
use imooc
切换到数据库中;然后插入数据;
db.admins.insert({age:1})
一次插入多条数据方便后续操作;然后使用find()方法查看表中的数据;
db.admins.find()
我这里插了4条数据,分别对应表中age:1-4;
接下来就可以在node中连接这个数据库了;这里使用了nodejs操作mongo的中间件--mongoose;老方法使用npm在项目中先安装这个中间件;
npm install mongoose
那么我们正式开始在node中连接数据库;首先经过require引用;依次创立连接;模型编译;
切入模板;最后读数据。请看代码schma.js;
var mongoose = require("mongoose");//引用进来;
var db = mongoose.createConnection("mongo://127.0.0.1:12345/imooc");//创立连接;对应我们在数据库中的端口和所需调用的数据库名称;
var Schema = mongoose.schema;
var userListSchema = new Schema({
age:{type:Number}
});// 这一步是模型编译;用于后面一步模板的使用
exports.userlist = db.model('admins',userListSchema);//把上一步模型绑定,并且关联到imooc数据库中的admins表(拿取数据);并把方法暴露出去,供调用
var schma = require("./schma.js");//引入之后就可以调用之前暴露的userlist方法了;
app.get("/",function(res,req){
//上面schma的userlist方法查找数据
var finddb =schma.userlist.find(function(err,results){
if(err){
console.log(err);//如果查询异常抛出异常;
}esle{
res.render("index",{
title:'tt',
result:results//把查到的result插到页面中;最后需要在页面中引用
})
}
})
})
页面中引用results和title数据:
doctype
html
head
meta(charset="utf-8")
title #{title}
body
h1 #{title} #{result}
node app.js
然后在浏览器中请求'/'地址看情况;
所以,这就是简单的node连接mongo数据库的一个小例子;初步研究,继续深入中~~