TypeError:不能使用'in'运算符在中search'_id'

我不断地收到错误消息“TypeError:不能在'运算符'中search”+“mongoose”,“body-parser”,“./config”中的_id“…显然任何依赖。 我努力了:

  • 确保我的模型/模式是正确的,如下所示: TypeError:不能使用'in'运算符来search男性中的'_id'
  • 完全注释掉req.body的任何提及,以避免导致错误的任何可能性,如下所述: TypeError:不能使用'in'运算符在[{}]和这里search'_id' : Mongoose TypeError :不能使用'in'运算符来search[object Object]中的'_id'
  • 读这个,但不知道这里发生了什么: Mongoose TypeError:不能使用'in'运算符来search'_id'in
  • 我尝试了一些我认为可能导致问题的config.js文件。 (见下文)
  • 我甚至尝试完全注释掉这些违规的依赖项(比如var config = require('./config') ),这显然不是一个可行的长期解决scheme,但也没有摆脱我的错误。 相反,这只是将错误转移到了不同​​的依赖关系上(例如,现在这与mongoose本身有关)。

所以现在我很难过

这是我的用户模型:

 "use strict"; var mongoose = require('mongoose'); var userSchema = new mongoose.Schema({ username: { type: String, required: false}, password: { type: String, required: false} }); var user = mongoose.model('user', userSchema); module.exports = user; 

这是我的server.js:

 "use strict"; var require = require('./models/user'); //var bodyParser = require('body-parser'); //var config = require('./config'); var mongoose = require('mongoose'); var express = require('express'); var app = express(); //app.use(bodyParser.json()); app.use(express.static('public')); var runServer = function (callback) { mongoose.connect(config.DATABASE_URL, function (err) { if (err && callback) { return callback(err); } app.listen(config.PORT, function () { console.log('Listening on localhost:' + config.PORT); if (callback) { callback(); } }); }); }; if (require.main === module) { runServer(function (err) { if (err) { console.error(err); } }); }; app.post('/login', function(req, res) { console.log(req); //console.log(req.body.password); user.create({ username: 'Test', password: '1234' //username: req.body.username, //password: req.body.password }, function (err, user) { if(err) { return res.status(500).json({ message: 'Internal Server Error' }); } res.status(201).json(user); console.log(user); }); }); exports.app = app; exports.runServer = runServer; app.listen(process.env.PORT || 8080); 

这是我的config.js文件:

 exports.DATABASE_URL = process.env.DATABASE_URL || global.DATABASE_URL || 'mongodb://demo:demo@ds121483.mlab.com:21483/job-tracker-data'; //exports.TEST_DATABASE_URL = process.env.TEST_DATABASE_URL || //'mongodb://demo:demo@ds121483.mlab.com:21483/job-tracker-data'; exports.PORT = process.env.PORT || 8080; 

以下是错误消息的示例:

 /home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/document.js:212 if (obj && '_id' in obj) { ^ TypeError: Cannot use 'in' operator to search for '_id' in ./config at model.Document.$__buildDoc (/home/meryem/DevStuff/code/job- tracker-capstone-app/node_modules/mongoose/lib/document.js:212:27) at model.Document (/home/meryem/DevStuff/code/job-tracker- capstone-app/node_modules/mongoose/lib/document.js:61:20) at model.Model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:46:12) at new model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:3671:13) at model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:3669:16) at Object.<anonymous> (/home/meryem/DevStuff/code/job-tracker- capstone-app/server.js:5:14) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:148:18) at node.js:405:3 TypeError: Cannot use 'in' operator to search for '_id' in body-parser at model.Document.$__buildDoc (/home/meryem/DevStuff/code/job- tracker-capstone-app/node_modules/mongoose/lib/document.js:212:27) at model.Document (/home/meryem/DevStuff/code/job-tracker- capstone-app/node_modules/mongoose/lib/document.js:61:20) at model.Model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:46:12) at new model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:3671:13) at model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:3669:16) at Object.<anonymous> (/home/meryem/DevStuff/code/job-tracker- capstone-app/server.js:4:18) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:148:18) at node.js:405:3 TypeError: Cannot use 'in' operator to search for '_id' in mongoose at model.Document.$__buildDoc (/home/meryem/DevStuff/code/job- tracker-capstone-app/node_modules/mongoose/lib/document.js:212:27) at model.Document (/home/meryem/DevStuff/code/job-tracker- capstone-app/node_modules/mongoose/lib/document.js:61:20) at model.Model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:46:12) at new model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:3671:13) at model (/home/meryem/DevStuff/code/job-tracker-capstone- app/node_modules/mongoose/lib/model.js:3669:16) at Object.<anonymous> (/home/meryem/DevStuff/code/job-tracker- capstone-app/server.js:6:16) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:148:18) at node.js:405:3 

请帮忙。