我收到错误“TypeError:无法在一个简单的帖子请求中读取未定义的属性'_id',以便将文档保存到名为books
的集合中,
我的有效载荷如下所示:
{
"name": "practical view",
"author": "DN",
"location": "room 50"
}
我在快递路线上正在做db.books.save()
。
由于我没有传递id,理想情况下这应该可行,但在这种情况下不行。
以下是我在节点服务器上获得的完整错误转储:
C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\mongodb\lib\mongodb\mongo_client.js:411
throw err
^
TypeError: Cannot read property '_id' of undefined
at Collection.save (C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\mongodb\lib\mongodb\collection.js:393:15)
at C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\index.js:203:65
at apply (C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\thunky\index.js:16:28)
at C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\thunky\index.js:20:25
at Db.collection (C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\mongodb\lib\mongodb\db.js:488:44)
at C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\index.js:268:7
at apply (C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\thunky\index.js:16:28)
at C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\thunky\index.js:20:25
at C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\index.js:300:4
at C:\NodeProjects\ExpressTutorial\Library\node_modules\mongojs\node_modules\mongodb\lib\mongodb\mongo_client.js:408:11
31 Aug 00:14:30 - [nodemon] app crashed - waiting for file changes before starting...
答案 0 :(得分:8)
确保npm install body-parser,然后添加
var bodyParser = require('body-parser');
app.use(bodyParser());
到代码的顶部。这也假设您正在使用Express。
答案 1 :(得分:4)
请试试这个:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
答案 2 :(得分:0)
即使有这个问题的答案,另一个解决方案是检查node.json中的快速js的版本。在我自己的情况下,我将版本从3.x切换到4.x,这足以摆脱这个错误。我希望它有所帮助。
答案 3 :(得分:0)
这是由于您在package.json中使用的依赖项版本,如果您引用任何博客或教程,请下载其代码并查看它们使用的依赖项版本,并在项目中安装该依赖项。 希望你解决你的错误,快乐编码。 :)