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)获取到要操作的数据库,然后获取要操作的表:

const person = db.db('person');
const student = person.collection('student');

旧版本的写法是直接获取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相关推荐

  1. NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段

    NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段 这里使用的是基于RESTful API的规范创建的请求地址 在Schema创建用户的时候可以使用select:fa ...

  2. 58 Node.js中操作mongoDB数据库

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder 的程序人生 1.数据库概述及环境搭建 1.1 为什么要使用数据库 动态网站中的数据都是存储在数据 ...

  3. 使用mongoose 在 Node中操作MongoDB数据库

    MongoDB 关系型和非关系型数据库 关系型数据库(表就是关系,或者说表与表之间存在关系). 所有的关系型数据库都需要通过sql语言来操作 所有的关系型数据库在操作之前都需要设计表结构 而且数据表还 ...

  4. 在NodeJS中操作文件常见的API

    阅读目录 一:如何读整个文件内容? 二:如何写入整个文件内容? 三:如何在文件中的指定位置处读入内容? 四:如何在文件中的指定位置处写入内容? 五:如何创建与读取目录? 六:如何查看与修改文件或目录的 ...

  5. Mongodb- paly中操作mongodb记录

    为什么80%的码农都做不了架构师?>>>    -- 多条件查询val msgColl = MongoFactory.collection("Meta_Message&qu ...

  6. Nodejs 操作 MongoDb 数据库

    一.在 Nodejs 中使用 Mongodb 在前面的博文我们给大家讲了如何使用命令操作 Mongodb,这篇博文开始我们给大家讲解一 下如何使用 Nodejs 来操作 Mongodb 数据库 Nod ...

  7. mongoose操作mongodb

    http://mongoosejs.com/docs/api.html#index-js mongoose是nodejs环境下操作mongodb的模块封装,使用mongoose之后,实际上只需要在mo ...

  8. MONGOOSE – 让NODE.JS高效操作MONGODB(转载)

    Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...

  9. mongodb创建用户名和密码_Python中使用MongoDB详解

    作者:Zarten知乎专栏:Python爬虫深入详解知乎ID: Zarten简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 ! 介绍 MongoD ...

最新文章

  1. opencv图像恢复逆滤波_OpenCV之快速的图像边缘滤波算法
  2. 39、自定义控件(四)-- View源码分析
  3. 大型高性能网站的十项规则
  4. php导出excel出现乱码,php导出数据到excel出现乱码的解决办法
  5. javascript做极简时钟特效,再简单没思路你也做不出来
  6. python dlib人脸检测_Python 3 利用 Dlib 实现人脸检测和剪切
  7. cshtml 未能找到类型或命名空间名称“PagedList”(是否缺少 using 指令或程序集引用?)
  8. 开关造成的毛刺_干冰清洗机模具清洗机干冰去毛刺机注意事项
  9. java中的内部类_Java中成员内部类的使用
  10. linux svn e210003,svnadmin load 遇到E125005 的错误
  11. Java List retainAll 记录坑
  12. 华为推送-华为PUSH SDK Android版接入方法
  13. mac移动硬盘未装载解决方案
  14. 各种SKYPE网页代码,SKYPE在线代码
  15. 测试苹果授权登录Sign in with apple时,提示“未完成注册”处理经验分享
  16. Alpha 冲刺(8/10)
  17. Fleck WebSocket使用
  18. HTML谷歌怎么加背景音乐,谷歌Chrome浏览器怎么提取网页的背景音乐?
  19. 非常详细易懂的法线贴图(Normal Mapping)
  20. keep-alive是什么?

热门文章

  1. vs2005新建项目中没有ASP.NET WEB应用程序
  2. 【VSTO】Office开发中遇到的兼容性检查问题
  3. Qt自定义事件实现及子线程向主线程传送事件消息
  4. c#中通过截获windows消息禁止改变窗体大小
  5. c++callback回调实例
  6. matlab 线性拟合polyfit_从零开始的matlab学习笔记——(24)曲线拟合
  7. mysql特有语法_MySQL详细的基础语法
  8. 文件包含——apache日志文件包含shell(四)
  9. c语言读取acc文件的采样率,C语言文件操作:打开检查文件指针访问模式
  10. vue 打包上线后字体图标不显示