TypeError:不能使用'in'运算符search男性中的'_id'
嗨,我有问题与使用node.js的新版本早些时候我用这样的代码
label(for='user_sex') Sex: select(id='user_sex', name='user[sex]') option(id='user_male',value=user.sex,selected=1)='male' option(id='user_female',value=user.sex)='female'
并在app.js中的代码
var user = new User(req.body.user); -- other code var sex = new User(req.body.user.sex); User.find({}, function(err, users) { for(var i = 0;i< users.length;i++) { if(users[i].email == email) { useremail = users[i].email; } } if(!useremail) { user.save(function(err) { if (err) return userSaveFailed(); req.flash('info', 'Your account has been created'); emails.sendWelcome(user); switch (req.params.format) { case 'json': res.send(user.toObject()); break; default: req.session.user_id = user.id; res.redirect('/userinfo'); } }); }
完整的错误日志如下:
500 TypeError: Cannot use 'in' operator to search for '_id' in male at model.Document.$__buildDoc (C:\SocialNetwork\node_modules\mongoose\lib\document.js:159:27) at model.Document (C:\SocialNetwork\node_modules\mongoose\lib\document.js:58:20) at model.Model (C:\SocialNetwork\node_modules\mongoose\lib\model.js:38:12) at new model (C:\SocialNetwork\node_modules\mongoose\lib\model.js:2092:11) at C:\SocialNetwork\app.js:1033:13 at callbacks (C:\SocialNetwork\node_modules\express\lib\router\index.js:272:11) at param (C:\SocialNetwork\node_modules\express\lib\router\index.js:246:11) at param (C:\SocialNetwork\node_modules\express\lib\router\index.js:243:11) at pass (C:\SocialNetwork\node_modules\express\lib\router\index.js:253:5) at Router._dispatch (C:\SocialNetwork\node_modules\express\lib\router\index.js:280:5)
问题似乎与连接forms,我知道现在不赞成使用,所以我现在使用强大。 任何人都可以帮我解决这个错误
你得到这个错误,因为你没有正确地构build你的模型实例。 它期望散列的属性及其相应的值,但您提供的参数是一个string,而不是。 从上面的代码中,req.body.user是一个hash {sex: "male"}
而req.body.user.sex只是一个string“male”。 你可以做;
user = new User({sex: "male"});
但你不能这样做。
user = new User("male");
这解释了为什么你的第一个“用户”实例与req.body.user参数工作,但与req.body.user.sex参数失败。 我不知道你想用var sex = new User(req.body.user.sex);
来实现什么var sex = new User(req.body.user.sex);
你想创build另一个用户模型实例吗? 或相关的性别模型?
- Jade没有在Angular Routing上工作
- 渲染来自玉节点的数据
- 如何从客户端的Node和Express服务器获取完整的错误消息?
- Passport身份validationReferenceError:用户未定义
- 如何在Express框架中设置位置响应HTTP头?
- Express – 将客户端数据传递给API并从API返回数据到客户端
- 如何处理asynchronous。 findOrCreate护照和mongoose的方法
- express:保持所有DRY创build一个mongoose连接模块(使用新的createConnection方法)
- 未使用callback时未定义的结果。 Nodejs,Express和SQL Server Express