TypeError: Kann den Operator 'in' nicht verwenden, um nach '_id' in männlich zu suchen

8

Hi, ich habe Probleme mit den neuen Versionen von node.js Früher habe ich einen Code wie diesen verwendet

%Vor%

Und Code in app.js

%Vor%

Das vollständige Fehlerprotokoll lautet wie folgt:

%Vor%

Das Problem scheint bei connect-form zu sein, von dem ich weiß, dass es jetzt veraltet ist, also benutze ich jetzt formidable. Kann jemand mir helfen, diesen Fehler zu lösen

    
Inventillect 13.04.2013, 07:34
quelle

1 Antwort

18

Sie erhalten diesen Fehler, weil Sie Ihre Modellinstanz nicht ordnungsgemäß erstellen. Es erwartet einen Hash der Eigenschaften und ihrer entsprechenden Werte, aber der Parameter, den Sie bereitstellen, ist stattdessen eine Zeichenkette. Aus dem obigen Code ist req.body.user ein Hash {sex: "male"} , während req.body.user.sex nur eine Zeichenfolge "männlich" ist. Sie können tun;

%Vor%

Aber Sie können nicht tun;

%Vor%

Das erklärt, warum Ihre erste "User" -Instanz mit dem Parameter req.body.user funktioniert, aber mit dem Parameter req.body.user.sex fehlschlägt. Ich bin mir noch nicht sicher, was Sie mit var sex = new User(req.body.user.sex); erreichen möchten. Möchten Sie eine andere Benutzermodellinstanz erstellen? oder ein assoziiertes Sexualmodell?

    
dantheta 31.05.2013 21:28
quelle

Tags und Links