nodejs连接mongo数据库

         用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;

nodejs连接mongo数据库_第1张图片

   接下来就可以在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表(拿取数据);并把方法暴露出去,供调用


这样建立连接之后,我们应该在我们的模板中把数据插进去;这样客户端(网页)就能显示我们的数据了;在我们的另外一个js中(控制路由),引用上面的schma.js:

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}


这是nodejs推荐的jade模板,使用到了html5标签;可以看到h1标签中使用了返回的数据;不出意外的页面会显示数据;我们使用node命令启动服务;

node app.js
然后在浏览器中请求'/'地址看情况;

nodejs连接mongo数据库_第2张图片


所以,这就是简单的node连接mongo数据库的一个小例子;初步研究,继续深入中~~







  

你可能感兴趣的:(数据库,前端)