node + mongodb 簡單實現自己的查詢接口
阿新 • • 發佈:2018-02-09
query asc gif content app log serve 簡單實現 string解析
話不多說直接上代碼
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,然後通過對數據庫的操作,將數據返回。
瀏覽器輸出地址,可以看到數據。
node + mongodb 簡單實現自己的查詢接口