【发布时间】:2020-02-26 12:21:25
【问题描述】:
有路由器,连接到数据库。插入按预期运行。 Get-data 显示所有插入的数据,但 update 操作异常。 console.log 问题:
"(node:10860) UnhandledPromiseRejectionWarning: 错误: 无效 架构,预期的 mongodb"
。 我不更新我的数据。我可以做些什么来更新我的数据?
index.js:
var express = require("express");
var router = express.Router();
let mongo = require("mongodb").MongoClient;
let objectId = require("mongodb");
let assert = require("assert");
let url = "mongodb://localhost:27017/test";
/* GET home page. */
router.get("/", function(req, res, next) {
res.render("index");
});
router.get("/get-data", (req, res, next) => {
let resultArray = [];
mongo.connect(
url, { native_parser: true },
(err, db) => {
assert.equal(null, err);
let cursor = db.collection("testdata").find();
cursor.forEach(
(doc, err) => {
assert.equal(null, err);
resultArray.push(doc);
}, () => {
db.close();
res.render("index", { items: resultArray });
});
});
});
router.post("/insert", (req, res, next) => {
let item = {
title: req.body.title,
content: req.body.content,
author: req.body.author
};
mongo.connect(
url, { native_parser: true },
(err, db) => {
assert.equal(null, err);
db.collection("testdata").insertOne(item, (err, result) => {
assert.equal(null, err);
console.log("Item inserted");
db.close();
});
});
res.redirect("/");
});
router.post("/update", (req, res, next) => {
let item = {
title: req.body.title,
content: req.body.content,
author: req.body.author
};
let id = req.body.id;
mongo.connect(
url,{ native_parser: true },
(err, db) => {
assert.equal(null, err);
db.collection("testdata").updateOne(
{ _id: objectId(id) },
{ $set: item },
(err, result) => {
assert.equal(null, err);
console.log("Item updated");
db.close();
});
});
});
【问题讨论】:
-
我做了一点谷歌搜索。其他人能够通过使用 npm install mongodb 更新他们的节点驱动程序来解决此错误这是否解决了您的问题? stackoverflow.com/questions/56765007/…
-
@LaurenSchaefer,它不能决定这个问题。我升级了 mongodb 模块,但我也收到错误:'(node:12191) UnhandledPromiseRejectionWarning: Error: invalid schema, expected mongodb'