Javascript 未捕获类型错误:无法读取属性'_id';未定义的
我收到TypeError:在尝试根据用户id获取用户时,无法读取未定义的属性“\u id” 我的路由和控制器如下所示: //routes.jsJavascript 未捕获类型错误:无法读取属性'_id';未定义的,javascript,node.js,unit-testing,express,mocha.js,Javascript,Node.js,Unit Testing,Express,Mocha.js,我收到TypeError:在尝试根据用户id获取用户时,无法读取未定义的属性“\u id” 我的路由和控制器如下所示: //routes.js var AuthenticationController = require('./controllers/authentication'); module.exports = function (app){ var apiRoutes = express.Router(); apiRoutes.get('/user/:_id', Au
var AuthenticationController = require('./controllers/authentication');
module.exports = function (app){
var apiRoutes = express.Router();
apiRoutes.get('/user/:_id', AuthenticationController.getUserById);
app.use('/api', apiRoutes);
};
//控制器
exports.getUserById = function (req, res, next){
User.findById(
{_id: req.params._id}, function(err,users){
if (err){
res.send(err);
}
res.status(200).json({
Success: true,
user: users
});
});
};
下面是我的按ID获取用户的单元测试代码
//user-test.spec.js
describe('/GET/:_id user', () => {
it('it should get a user by the given ID', (done) => {
var user = new User({ email: "mjn.nilesh12@gmail.com", password: "gunners", fullname: "Nilesh Maharjan"});
user.save((err, user) => {
chai.request(server)
.get('api/user/' + user._id)
.send(user)
.end((err, res) => {
res.should.have.status(200);
done();
});
});
});
});
//完全错误
Uncaught TypeError: Cannot read property '_id' of undefined
at user.save (test/user-test.spec.js:73:38)
at /Users/seva/Desktop/project1/node_modules/mongoose/lib/model.js:4670:16
at /Users/seva/Desktop/project1/node_modules/mongoose/lib/utils.js:250:11
at $__save.error (node_modules/mongoose/lib/model.js:476:16)
at /Users/seva/Desktop/project1/node_modules/kareem/index.js:246:48
at next (node_modules/kareem/index.js:167:27)
at next (node_modules/kareem/index.js:169:9)
at Kareem.execPost (node_modules/kareem/index.js:217:3)
at _handleWrapError (node_modules/kareem/index.js:245:21)
at _cb (node_modules/kareem/index.js:304:16)
at /Users/seva/Desktop/project1/node_modules/mongoose/lib/model.js:329:9
at /Users/seva/Desktop/project1/node_modules/kareem/index.js:135:16
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)
你能告诉我们你得到的全部错误吗?我猜你的
User
类是一个Mongoose文档?它被正确地保存到数据库中了吗?@Ivan Vasiljevic:这里是完整的错误。请参见上面的if(typeof req.params.\u id=='undefined')返回代码>您在测试中是否连接到MongoDB?我记得我在代码中没有DB连接时也遇到过类似的问题。由于这个原因,我无法持久保存我的对象。你能告诉我们你得到的全部错误吗?我猜你的User
类是一个Mongoose文档?它被正确地保存到数据库中了吗?@Ivan Vasiljevic:这里是完整的错误。请参见上面的if(typeof req.params.\u id=='undefined')返回代码>您在测试中是否连接到MongoDB?我记得我在代码中没有DB连接时也遇到过类似的问题。因此,我无法持久化我的对象。