合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## **1、 在 Nodejs 中使用 Mongodb** 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库 需要引包: ``` npm install mongodb --save-dev / cnpm install mongodb --save-dev ``` 网址: https://docs.mongodb.com/getting-started/node/introduction/ https://docs.mongodb.com/getting-started/node/query/ ## **2、Nodejs 连接 MongoDb 数据库** ``` var express = require("express"); // 数据库引用 var MongoClient = require('mongodb').MongoClient; var app = express(); // 数据库连接的地址,最后的斜杠表示数据库名字 var shujukuURL = 'mongodb://localhost:27017/news'; app.get("/",function(req,res){ // 连接数据库,这是一个异步的操作 MongoClient.connect(shujukuURL, function(err, db) { res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"}); if(err){ res.send("数据库连接失败"); return; } res.write("恭喜,数据库已经成功连接 \\n"); db.collection("user").insertOne({"name":"哈哈"},function(err,result){ if(err){ res.send("数据库写入失败"); return; } res.write("恭喜,数据已经成功插入"); res.end(); // 关闭数据库 db.close(); }); }); }); app.listen(8020); ``` ## **3、Nodejs 查找 MongoDb 数据库集合** ``` MongoClient.connect(dbUrl,function(err,db){ if(err){ /*数据库连接失败*/ console.log('数据库连接失败'); return; } var result=[]; var userRel=db.collection('user').find(); // res.send(userRel); userRel.each(function(err, doc) { if(err){ res.write("游标遍历错误"); return; } if (doc != null) { result.push(doc); } else { console.log(result); //遍历完毕 db.close(); res.render("index",{ "result" : result }); } }); }) ``` ## **4、Nodejs 给 MongoDb 增加数据** ``` MongoClient.connect(dbUrl,function(err,db){ if(err){ return } db.collection('user').insertOne( { "name" : name, "age" : age, "score" : { "shuxue" : shuxuechengji, "yuwen" : yuwenchengji } }, function(err,result){ if(err){ console.log('写入数据失败'); } //关闭数据库 db.close(); // res.redirect('/add'); res.redirect('/'); /*路由跳转*/ res.end(); ////res.location('/add') } ) }) ``` ## **5、Nodejs 修改 MongoDb 数据** ``` MongoClient.connect(dbUrl,function(err,db){ if(err){ console.log('数据库连接错误'); return; } db.collection('user').updateOne( {"_id":ObjectID(id)}, { "name": name, "age": age, "score": { "shuxue": shuxue, "yuwen": yuwen } }, function (err, results) { console.log(results); db.close(); res.redirect('/'); /*路由跳转*/ res.end('end'); } ) }) ``` ## **六、Nodejs 删除 MongoDb 数据** ``` MongoClient.connect(dbUrl,function(err,db){ if(err){ throw new Error("数据库连接失败"); return; } db.collection('user').deleteOne( {"_id":ObjectID(id)}, function(error,result){ if(error) { throw new Error('删除数据失败'); return; } db.close(); res.redirect('/'); /*路由跳转*/ } ) }) ```