node + mongodb 简单实现自己的查询接口

话不多说直接上代码

const http = require('http');
const Db = require('mongodb').Db;
const Connection = require('mongodb').Connection;
const Server = require('mongodb').Server;
const query2 = require('querystring');
var url=require('url');

let settings = {
	cookieSecret : 'shop',
	db : 'local',
	host : 'localhost',
	port : 27017
}
let shopping = new Db(settings.db, new Server(settings.host,settings.port),
	{safe : true});


var server = http.createServer(function(req,res){

	var  arg=url.parse(req.url).query ;
	var nameValue=query2.parse(arg)['funNo']
	//var cc = query.parse(req);

	// var data = "";
	// res.on('data', function (chunk) {
	//   data += chunk;
	// })
	// .on("end", function () {
	//   //对data转码
	// });

  if(nameValue == '001'){
    let param = {
      pdtId : 1,
    }
   getOne(param.pdtId,function(err,post){
	      var data = JSON.stringify(post);
	      res.writeHead(200, {
				'Content-type' : 'application/json',
				});
	    res.setHeader({
				'Access-Control-Allow-Origin': '*'
				});
	      res.write(data,'UTF-8');// 向请求客户端发送相应内容,data是buffer或字符串,encoding为编码
	      res.end(); //结束响应,告知用户所有发送已经完成,当所有要返回的内容发送完

	    })
  }
})
function getOne(pdtId,callback){
  shopping.open(function(err,db){
    if(err){
      return callback(err);
    }
    //打开数据库之后就去找数据了
    db.collection('chen',function(err,collection){
        if(err){
          shopping.close();
          return callback(err);
        }
        //根据条件查询
        collection.findOne({
          "pdtId" : pdtId,

        },function(err,data){
          shopping.close();
          if(err){
            return callback(err);
          }
          //将查到的文档解析
          //doc.post = markdown.toHTML(doc.post);
	  var cc = [];
	  cc.push(data)
          callback(null,cc)//返回查询的文章
        })
    })
  })
}
server.listen(8081);

 如以上的代码,通过对数据库设置,连上本地数据库。然后通过querystring解析查询条件,这里的查询条件我写死了 ,pdtId = 001,然后通过对数据库的操作,将数据返回。

浏览器输出地址,可以看到数据。

原文地址:https://www.cnblogs.com/jjucap/p/8434505.html