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
'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. –
Dies ist, was ich bekomme, wenn ich console.log (req.body) {Position: '1', Operation: 'hinzufügen', userip: '1'} –
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"? –