2016-03-29 3 views
-1

Ich bin mit Routing-Problem seit Tagen fest und konnte nicht finden, wo ich falsch gelaufen bin. Ich versuche, dem Benutzerobjekt einige Felder über ein Formular hinzuzufügen. Hier ist mein Mungo Schema:Kann nicht mit Express und Mungo routen, bekommen immer "Type Error: req.params.user ist keine Funktion"

var userSchema = mongoose.Schema ({

local   : { 
    firstName : String, 
    lastName  : String, 
    email  : String, 
    password  : String, 
    gender  : String, 
    country  : String, 
    position  : [{type: String}], 
    operation : String, 
    userip  : String 
    } 
}); 

route.js:

app.post("/OTPmaker", isLoggedIn, function(req, res) { 

    User.find(req.param.user_id, function(err, user){ 
     if(err) 
       res.send(err); 
      user.local.position = req.params("position"); 
      user.local.operation = req.params("operation"); 
      user.local.userip = req.params("userip"); 

        user.save(function(err) { 
        if (err) 
        res.send(err); 
        }); 
     }); 
    }); 

ich habe Arbeit es einmal, aber ich weiß nicht, was hat es funktioniert.

> db.users.find().pretty() 
{ 
"_id" : ObjectId("56f96c2703fb6a341ecab298"), 
"local" : { 
"country" : "U.S", 
"gender" : "Male", 
"lastName" : "KS", 
"firstName" : "Balajee", 
"password" : "$2a$08$Dmtf8/4lXOX7mUekRHEgGu9ItMxgFc/Ngs0NtjYcpDd9yytSSRZ8a", 
"email" : "[email protected]", 
"operation" : "add", 
"userip" : "11", 
"position" : [ 
"1", 
"2" 
] 
}, 
"__v" : 3 
} 

Aber jetzt ist es nicht funktioniert. das ist der Fehler.

C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:66 
      user.local.position = req.params("position"); 
            ^

TypeError: req.params is not a function 
    at Query.<anonymous> (C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:66:39) 
    at C:\Users\Balajee\Desktop\project\Neutro\node_modules\mongoose\node_modules\kareem\index.js:177:19 
    at C:\Users\Balajee\Desktop\project\Neutro\node_modules\mongoose\node_modules\kareem\index.js:109:16 
    at nextTickCallbackWith0Args (node.js:415:9) 
    at process._tickCallback (node.js:344:13) 

npm ERR! Windows_NT 10.0.10586 
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start" 
npm ERR! node v4.3.1 
npm ERR! npm v2.14.12 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] start: `node server.js` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] start script 'node server.js'. 
npm ERR! This is most likely a problem with the neutro package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  node server.js 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls neutro 
npm ERR! There is likely additional logging output above. 

npm ERR! Please include the following file with any support request: 
npm ERR!  C:\Users\Balajee\Desktop\project\Neutro\npm-debug.log 
+1

'req.body.position' oder' req.body [ "position"] 'die gültige Schreibweise , und ein Body-Parser sollte einen POST in "body" setzen. Aber überprüfen Sie Ihre "POST" Anfrage sendet, was Sie denken. 'console.log (req.body)' sollte das aussortieren. –

+0

Dies ist, was ich bekomme, wenn ich console.log (req.body) {Position: '1', Operation: 'hinzufügen', userip: '1'} –

+0

So 'Position:' 1'' ist ** nicht ** ein Array, wenn es wäre, wäre Position: ['1'] '. Das ist der Grund, warum Mungo den Fehler wirft. Was versuchst du zu machen? Überschreiben Sie die Array-Daten mit einem einzelnen Element-Array? Oder versuchen Sie stattdessen, das neue Element an das Array "anzufügen"? –

Antwort

0

Ja request.params ist keine Funktion, sollten Sie tun .. werden

req.params.position; 
+0

C: \ Benutzer \ Balajee \ Desktop \ Projekt \ Neutro \ app \ routes.js: 66 Benutzer .local.position = req.params.position; ^ TypeError: Eigenschaft 'Position' von undefined bei Query kann nicht festgelegt werden. (C: \ Benutzer \ Balajee \ Desktop \ Projekt \ Neutro \ app \ routes.js: 66: 33) bei C: \ Benutzer \ Balajee \ Desktop \ Projekt \ Neutro \ Knotenmodule \ Mungo \ Knoten \ Module \ Kareem \ Index. js: 177: 19 unter C: \ Benutzer \ Balajee \ Desktop \ Projekt \ Neutro \ Knotenmodule \ Mungo \ Knotenmodule \ Kareem \ Index.js: 109: 16 bei nextTickCallbackWith0Args (node.js: 415: 9) bei process._tickCallback (node.js: 344: 13) –

+0

bekommen den obigen Fehler –

+0

Sie müssen überprüfen, dass Ihre user.local nicht undefiniert ist. Wenn es nicht definiert ist und wenn Sie möchten, dass es in der Datenbank erstellt wird, müssten Sie so etwas tun. 'user.local = {}; user.local.position = req.params ("Position"); user.local.operation = req.params ("Operation"); user.local.userip = req.params ("userip"); ' –

Verwandte Themen