Node.js 连接MongoDB,并实现浏览器GET请求加参数

来源:互联网 发布:笑气在淘宝上叫什么 编辑:程序博客网 时间:2024/06/05 11:39

前言

最近学习了Node.js,并且接触了MongoDB,因此想做一个浏览器访问一个http地址获取数据库里的数据的例子,本文使用的是Node.js作为接口

具体内容

Node.js要准备的东西

express模块,可以参考http://www.runoob.com/nodejs/nodejs-express-framework.html获取
mongodb模块,可以参考http://www.runoob.com/nodejs/nodejs-mongodb.html获取

代码片

  • 创建 express_demo.js文件
var express = require('express');var utils = require('./utils');var app = express();var url = require('url');var MongoClient = require('mongodb').MongoClient;var DB_CONN_STR = 'mongodb://localhost:27017/runoob';app.use(express.static('public'));//  /user 页面响应app.get('/user', function (req, res) {  //查询数据  var selectData = function(db, callback) {    //连接到表    var collection = db.collection('site');    //查询数据    var params = url.parse(req.url, true).query;    //从浏览器获得的参数    var name = params['name'];      var whereStr = {};    whereStr.name = name;    collection.find(whereStr).toArray(function(err, result) {      if(err)      {        console.log(err);        return;      }      callback(result);    });  }  MongoClient.connect(DB_CONN_STR, function(err, db) {    console.log("连接成功!");    selectData(db, function(result) {    //  console.log(result);      if(utils.isEmptyObject(result)){          res.end("name不存在");      }else{        res.end(JSON.stringify(result));      }      db.close();    });  });})var server = app.listen(8080,"0.0.0.0", function () {  var host = server.address().address  var port = server.address().port  console.log("应用实例,访问地址为 http://%s:%s", host, port)})

上面的代码有个

var utils = require('./utils');

这个是我写的一个判断JSON是否为空的函数,具体内容
utils.js文件

exports.isEmptyObject = function(e) {    var t;    for (t in e)        return !1;    return !0}

其中exports代表该函数可被外部调用

  • 在MongDB中创建数据库并且插入数据
    mongodb.js
var MongoClient = require('mongodb').MongoClient;var DB_CONN_STR = 'mongodb://localhost:27017/runoob';插入数据到表var insertData = function(db, callback) {    //连接到表 site    var collection = db.collection('site');    //插入数据    var data = [{"name":"菜鸟教程","url":"www.runoob.com","likes":100},{"name":"菜鸟工具","url":"c.runoob.com","likes":100}];    collection.insert(data, function(err, result) {        if(err)        {            console.log('Error:'+ err);            return;        }        callback(result);    });}MongoClient.connect(DB_CONN_STR, function(err, db) {    console.log("连接成功!");    insertData(db, function(result) {        console.log(result);        db.close();    });});
  • 开启express_demo.js脚本,在node.js终端中输入
   node  express_demo.js

这里写图片描述
* get测试工具使用postman
这里写图片描述

  • 结果
    这里写图片描述

这样就实现了使用node.js+mongoDB实现http请求获取数据库内容的demo,学会了感觉很简单

原创粉丝点击