Hallo suchen i Problem mit bin mit den neuen Versionen von node.js mit Früher verwendete ich einen Code wie dieserTypeerror: Kann nicht ‚in‘ Operator für ‚_id‘ in männlichen
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'
Und Code in 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');
}
});
}
Das komplette Fehlerprotokoll ist wie folgt:
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)
Das Problem mit Co scheint nnect-form, die ich kenne, ist jetzt veraltet, also benutze ich jetzt formidable. Kann jemand mir helfen, diesen Fehler zu lösen
Der Teil, wo Sie alle Benutzer finden und dann durchlaufen sie in Knoten, auf der Suche nach der richtigen E-Mail, ist ein bisschen komisch. Warum nicht 'User.find ({email: email}, // ...'? Was den eigentlichen Fehler betrifft, kann ich nicht sehen, dass Sie den in-operator in dem von Ihnen geposteten Code verwenden. –
Ich erhalte einen Fehler @ var sex = new User (req.body.user.sex), auch wenn ich den Rest des Codes nicht verwende, ist das, was mich betrifft. – Inventillect