本文实例讲述了节点链接mongodb数据库的方法。分享给大家供大家参考,具体如下:
一、安装2.6版本以上的mongodb在云服务器上(百度就能查到安装方法,以及验证是否安装成功一般是mongodb - version),
二,因为mongodb的默认开启端口是27017年,所以要在Ubuntu上开启这个端口:
地头允许27017
引用>
查维斯使
查维斯重载
查维斯状态//这是查看这个端口是否开启,iptables -列表也可以查看光在服务器开了端口还不行,还要在阿里云服务器控制台的安全组中添加这个端口:
npm我mongodb——保存 >之前
四、链接的具体代码(前提是已经建立了简单的http或https者服务),具体代码:
const http=要求(“http”) https=要求(“https”); const表达=要求(“表达”); const bodyParser=要求(体) const应用=表达(); const fs=要求(fs); const ejs=要求(“ejs”); const path=要求(“路径”); const MongoClient=要求(mongodb) .MongoClient;//返回信息 常量的问题={ 代码:200, 味精:“成功”, };//https证书,开https服务的自验证证书 const选项={ 关键:fs.readFileSync (’。/privatekey.pem '), 证书:fs.readFileSync (“/certificate.pem。”) }; 让xltitle='标题(初始化数据)”, xlcontent='内容(初始化数据)”, xlfaceid=' 1(初始化数据)”; const url=' mongodb://127.0.0.1/xlbase '; 27017年//默认端口,无需填写//也可以修改端口,vim/etc/mongodb.conf//初始化数据库 MongoClient。连接(url,函数(呃,db) { 如果(err)把犯错; 让数据库=db.db (“xlbase”); console.log(' - - - - - - - - - - - -数据库初始化成功- - - - - - - - - - - -”);//如果没有面对这个集合,会创建一个,所以可以用这个来初始化集合 数据库。createCollection(“脸”,函数(呃,res) { 如果(err)把犯错; console.log(' - - - - - - - - - - - -集合初始化完毕- - - - - - - - - - - -”); db.close (); }); });//设置跨域访问 app.all(‘*’,函数(下)要求,res, { res.header (“Access-Control-Allow-Origin”、“*”); res.header (“Access-Control-Allow-Headers”、“X-Requested-With”); res.header (“Access-Control-Allow-Methods”、“PUT、POST、GET、删除选项”); res.header (“X-Powered-By”、“3.2.1”);//res.header(“内容类型”、“application/json; charset=utf - 8”); next (); });//解析应用程序/x-www-form-urlencoded解析 app.use (bodyParser。urlencoded({扩展:假}));//application/json解析解析 app.use (bodyParser.json ());//视图引擎设置,视图模版 app.set(“视图”,路径。加入(__dirname '/')); app.set(“视图引擎”、“玉”);//静态资源解析路径(css, js,图片等) app.use (express.static(路径。加入(__dirname’。/静态')));//数据接收接口 app.post(/信息,函数(点播,res) { res.header(“内容类型”、“application/json; charset=utf - 8”); res.status (200); xltitle=req.body.title; xlcontent=req.body.content; xlfaceid=req.body.faceId; 让信息={ “faceid”: xlfaceid, “标题”:xltitle, “内容”:xlcontent }; 让faceid={ “faceid”: xlfaceid }; 让updateInfo={$组:信息};//组装更新的信息 MongoClient。连接(url,函数(呃,db) { 让数据库=db.db (“xlbase”); database.collection('脸');(faceid)。toArray(函数(呃,结果){ 如果(err)把犯错;//判断集合中faceid和当前传过来的faceid是否相同和存在//如果不存在就新插入这条数据//如果存在且相同,就更新数据 如果结果。长度!==0,,结果[0]。faceid===xlfaceid) { database.collection(“面子”)。updateOne (faceid updateInfo,函数(呃,res) { 如果(err)把犯错; console.log(“- - - - - - - - - - - -数据更新成功- - - - - - - - - - - -”); db.close (); }); 其他}{ database.collection(“脸”)。insertOne(信息、功能(呃,res) { 如果(err)把犯错; console.log(“- - - - - - - - - - - -数据添加成功- - - - - - - - - - - -”); db.close (); }) } }) }); res.json(问题);//返回信息 res.end (JSON.stringify(点播。身体,null, 2)) }); app.get(/索引,函数(点播,res) { res.status (200); res.header(“内容类型”、“text/html; charset=utf - 8”);//根据faceId查询数据 MongoClient。连接(url,函数(呃,db) { 如果(err)把犯错; 让dbo=db.db (“xlbase”); 让脸={“faceid”: xlfaceid};//查询条件 让xltitle1=404; 让xlcontent1='网页出错!”; dbo.collection(“面子”);(脸)。toArray(函数(呃,结果){ 如果(err)把犯错; console.log(结果); [0].title xltitle1=结果; [0].content xlcontent1=结果; db.close (); console.log(' - - - - - - - - - - - -查询完毕- - - - - - - - - - - -”); res.send (' & lt; h4祝辞' + xltitle1 + + & lt;/h4> ”& lt;前比,“+ xlcontent1 + & lt;/pre>); res.end (); }); }); })//配置服务端口//http.createServer(应用程序)。听(3001年,函数(){//console.log (“3001”)//}); process.env。NODE_TLS_REJECT_UNAUTHORIZED=" 0 ";//绕过证书验证 https。createServer(选项,程序)。听(8009年,函数(){ 控制台。日志(端口:8009); });//var服务器=app.listen(3001年,函数(){////var主机=server.address () .address;////var端口=server.address () .port;////控制台。日志(示例应用倾听http://%s: % s的,主机、端口);//})节点链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】