无法读取null的“ db”属性

时间:2019-11-22 16:47:48

标签: node.js mongodb

我正在学习 Nodejs ,但是现在我正在学习 error

没有更多的代码接受这一点:

let express = require('express')
let mongodb = require('mongodb')
let server =  express()
let db

let connectionString = 'mongodb+srv://admin:******@cluster0-1vj27.mongodb.net/TodoApp?retryWrites=true'
mongodb.connect(connectionString, {useNewUrlParser: true}, function(err, client) {
  db = client.db("TodoApp")
  server.listen(3000)
})

server.use(express.urlencoded({extended: false}))

server.get('/', function(req,res) {
    res.send(`....`)
})
server.post('/create-item', function(req, res) {
    db.collection('items').insertOne({text: req.body.item}, function() {
      res.send("Thank you submitting the form.")
    })
})

我是 node 的新手,请帮助我陷入困境。 我现在该怎么办,请帮忙

1 个答案:

答案 0 :(得分:1)

您必须直接使用mongodb.MongoClient而不是mongodb

const mongodb = require('mongodb');
const mongoClient = mongodb.MongoClient;

// connect

在此处找到示例:https://mongodb.github.io/node-mongodb-native/api-articles/nodekoarticle1.html

此外,您应在尝试访问client之前检查是否有错误:

mongoClient.connect(connectionString, {useNewUrlParser: true}, function(err, client) {
  if (err) {
    console.error(error);
    return;
  }
  db = client.db("TodoApp")
  server.listen(3000)
})