在nodejs中操作mongodb
生活随笔
收集整理的這篇文章主要介紹了
在nodejs中操作mongodb
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
3.0文檔:http://mongodb.github.io/node-mongodb-native/3.0/
1.引入依賴包:
npm install mongodb --save-dev
2.建立一個簡單的服務,引入依賴包:
var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var dbURL = 'mongodb://localhost:27017';app.listen(process.env.POST || 8080);3.寫個路由
app.get('/insert',function(req, res) {MongoClient.connect(dbURL,function(err, db) {assert.equal(err,null);const person = db.db('person');const student = person.collection('student');student.insertOne({"name": "insert in nodejs"},function(error, result) {var re = JSON.parse(result);if (re.n === 1) {res.send("插入成功。");} else {res.send("插入失敗,error:" + error);}res.end();db.close();})}) })(1)連上數據庫:connect(dbURL,callback)
(2)獲取到要操作的數據庫,然后獲取要操作的表:
舊版本的寫法是直接獲取person數據庫,回調函數中的db為返回的person數據庫:
var dbURL = 'mongodb://localhost:27017/person'; var student = db.collection('student');這樣寫在新版中會報錯: db.collection() is not a function.大概是廢除了。
在瀏覽器中訪問,然后用命令查看一下是否插入成功:
image.png
image.png
// 查 app.get('/query',function(req, res) {MongoClient.connect(dbURL,function(err, db) {assert.equal(err,null);const person = db.db('person');const student = person.collection('student');student.find({}).toArray(function(error, docs) {res.send(docs); res.end();db.close();})}) }) // 改 app.get('/update',function(req, res) {MongoClient.connect(dbURL,function(err, db) {assert.equal(err,null);const person = db.db('person');const student = person.collection('student');student.updateOne({"name": "insert in nodejs test03"}, { $set: { "name" : "test" } }, function(error, result) {var re = JSON.parse(result);if (re.n === 1) {res.send("修改成功。");} else {res.send("修改失敗,error:" + error);}res.end();db.close();})}) }) // 刪 app.get('/delete',function(req, res) {var query = url.parse(req.url,true).query;var name = query.name;MongoClient.connect(dbURL,function(err, db) {assert.equal(err,null);const person = db.db('person');const student = person.collection('student'); student.deleteOne({ "name": name }, function(error, result) {var re = JSON.parse(result);if (re.n === 1) {res.send("刪除成功。");} else {res.send("刪除失敗,error:" + error);}res.end();db.close();})}) })兩張無關的圖先放這里:
?
image.png
?
image.png
4.封裝一下:
/modules/db.js
var MongoClient = require('mongodb').MongoClient; var dbUrl ='mongodb://localhost:27017';function connectDb(callback) {MongoClient.connect(dbUrl,function(err,db){if(err) {console.log('數據庫連接失敗');return;}callback(db);db.close();}) }exports.findOne = function(dbname,collectionname,json,callback){connectDb(function(db) {const DB = db.db(dbname);const collection = DB.collection(collectionname);var result = collection.findOne(json,null,callback);}); }exports.find = function(dbname,collectionname,json,callback) {connectDb(function(db) {const DB = db.db(dbname);const collection = DB.collection(collectionname);var result = collection.find(json).toArray(callback);}); }exports.insertOne = function(dbname,collectionname,json,callback){connectDb(function(db) {const DB = db.db(dbname);const collection = DB.collection(collectionname);collection.insertOne(json,callback)})}然后在server.js中導入:
var DB = require('./modules/db.js');使用:
app.post('/submit',function(req,res) {var username = req.body.username;var password = md5(req.body.password); DB.findOne('person','userinfo',{"username":username, "password":password}, function(error, docs) {if(docs === null) {res.send("<script>alert('登錄失敗');location.href='/login'</script>");} else {req.session.userinfo = docs;res.redirect('/product'); /*登錄成功跳轉到商品列表*/}}); })
轉載:https://www.jianshu.com/p/6883615640f0
總結
以上是生活随笔為你收集整理的在nodejs中操作mongodb的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 443端口是干什么的
- 下一篇: 怎么查看酒店有没有摄像头