首页 > 解决方案 > 无法读取未定义的属性“db”

问题描述

芒果数据库连接:

let express = require('express');
let mongodb = require('mongodb');

let app = express();
let db;

let connectionString = "mongodb+srv://todoAppUser:<password>@cluster0.qooyl.mongodb.net/todoApp?retryWrites=true&w=majority";

mongodb.connect(connectionString, {useNewUrlParser: true}, function(err, client){
    db = client.db();
  // console.log(db);
    app.listen(3000);
});

app.use(express.urlencoded({extended: false})); 

HTML 模板:

app.get('/', function(req, res) {
    res.send(`<!DOCTYPE html>
<div class="jumbotron p-3 shadow-sm">
  <form method="post" action="/create-item">
    <div class="d-flex align-items-center">
      <input name="item" autofocus autocomplete="off" class="form-control mr-3" type="text" style="flex: 1;">
      <button class="btn btn-primary">Add New Item</button>
    </div>
  </form>
</div>
    </html>`);
}); 

提交表单后 Post 方法:

app.post('/create-item', function(req, res) {
    db.collection('items').insertOne({text: req.body.item}, function() {
        res.send("Form Submitted");
    });
});

我使用 nodemon 作为服务器,同时保存文件面临错误,无法读取 'db' 未定义的属性

请帮忙解决这个问题..

标签: javascripthtmlnode.js

解决方案


推荐阅读