Ciao io sto avendo problema con l'utilizzo delle nuove versioni di node.js In precedenza ho usato un codice come questoTypeError: Non può usare 'in' operatore per la ricerca di '_id' nel maschio
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'
E il codice 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');
}
});
}
Il log di errore completo è il seguente:
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)
Il problema sembra con il co nnect-form che so è deprecato ora, quindi sto usando formidabile ora. Qualcuno può aiutarmi a risolvere questo errore
La parte in cui si trovano tutti gli utenti e quindi i loop attraverso di essi nel nodo, cercando l'email corretta, è un po 'strana. Perché non 'User.find ({email: email}, // ...'? Come per l'errore effettivo non riesco a vedere che stai utilizzando l'operatore in-in nel codice che hai postato. –
sto ricevendo errore @ var sex = new User (req.body.user.sex), anche se non uso il resto del codice, questo è ciò che mi riguarda – Inventillect