[关闭]
@Wangww0925 2019-08-07T08:02:04.000000Z 字数 1263 阅读 221

node.js连接MongoDB数据库,db.collection is not a function

NodeJs


在nodejs操作mongodb显示数据库连接成功之后突然报了db.collection is not a function错误,引起这个错误的原因是你monodb库的版本和你nodejs操作数据的api版本不一致

image_1d2k2bhukucpe201j7j1m2gk9f9.png-162.5kB

错误代码

node执行文件

  1. var express = require("express");
  2. var mongoclient = require("mongodb").MongoClient; // 数据库引用
  3. var app = express();
  4. app.get("/",(req,res)=>{
  5. var url = "mongodb://localhost:27017/test"; //创建数据库连接地址
  6. //连接数据库
  7. mongoclient.connect(url,(err,db)=>{
  8. if(err){
  9. res.send("<h1>数据库连接失败</h1>");
  10. return;
  11. }
  12. // 插入一条数据
  13. db.collection("login").insertOne({"name": "www"}, (err,result)=>{
  14. if(err){
  15. res.send("<h1>插入失败</h1>");
  16. return;
  17. }
  18. console.log(result);
  19. res.send("<h1>插入成功</h1>");
  20. db.close();
  21. })
  22. })
  23. })
  24. app.listen(8081);

解决方法:

  1. // mongodb 3.x 以上的新写法,test是数据库名
  2. var db = client.db("test");

改正代码

node执行文件

  1. var express = require("express");
  2. var mongoclient = require("mongodb").MongoClient; // 数据库引用
  3. var app = express();
  4. app.get("/",(req,res)=>{
  5. var url = "mongodb://localhost:27017/test"; //创建数据库连接地址
  6. //连接数据库
  7. mongoclient.connect(url,(err, client)=>{
  8. if(err){
  9. res.send("<h1>数据库连接失败</h1>");
  10. return;
  11. }
  12. // mongodb 3.x 以上的新写法,test是数据库名
  13. var db = client.db("test");
  14. // 插入一条数据
  15. db.collection("login").insertOne({"name": "www"}, (err,result)=>{
  16. if(err){
  17. res.send("<h1>插入失败</h1>");
  18. return;
  19. }
  20. res.send("<h1>插入成功</h1>");
  21. client.close();
  22. })
  23. })
  24. })
  25. app.listen(8081);

image_1d2k5bdka1htmgm8361k361fpa9.png-143.3kB


作者 wendy
2019 年 2月 1日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注