Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用express和mongoose进行路由,请继续获取;类型错误:req.params.user不是函数;_Javascript_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Javascript 无法使用express和mongoose进行路由,请继续获取;类型错误:req.params.user不是函数;

Javascript 无法使用express和mongoose进行路由,请继续获取;类型错误:req.params.user不是函数;,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我被路由问题困扰了好几天,找不到哪里出了问题。我试图通过表单向users对象添加一些字段。 这是我的猫鼬模式: var userSchema=mongoose.Schema({ route.js: app.post("/OTPmaker", isLoggedIn, function(req, res) { User.find(req.param.user_id, function(err, user){ if(err) res.sen

我被路由问题困扰了好几天,找不到哪里出了问题。我试图通过表单向users对象添加一些字段。 这是我的猫鼬模式:

var userSchema=mongoose.Schema({

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);
                    });
         });
    });
我曾经让它工作过,但我不知道是什么让它工作的

> db.users.find().pretty()
{
"_id" : ObjectId("56f96c2703fb6a341ecab298"),
"local" : {
"country" : "U.S",
"gender" : "Male",
"lastName" : "KS",
"firstName" : "Balajee",
"password" : "$2a$08$Dmtf8/4lXOX7mUekRHEgGu9ItMxgFc/Ngs0NtjYcpDd9yytSSRZ8a",
"email" : "balajee41@gmail.com",
"operation" : "add",
"userip" : "11",
"position" : [
 "1",
 "2"
 ]
},
"__v" : 3
}
但现在它不起作用了,这就是错误所在

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! neutro@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the neutro@1.0.0 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

C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:66
user.local.position=请求参数(“位置”);
^
TypeError:req.params不是函数

查询时。(C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:66:39)
在C:\Users\Balajee\Desktop\project\Neutro\node\u modules\mongoose\node\u modules\kareem\index.js:177:19
在C:\Users\Balajee\Desktop\project\Neutro\node\u modules\mongoose\node\u modules\kareem\index.js:109:16 在下一个TTickCallbackwith0args(node.js:415:9) 在进程中调用(node.js:344:13) npm错误!Windows\u NT 10.0.10586 npm ERR!argv“C:\\Program Files\\nodejs\\node.exe”“C:\\Program Files\\nodejs\\nodejs\\node\U模块\\npm\\bin\\npm cli.js”“开始” npm错误!节点v4.3.1 npm错误!npm v2.14.12 npm错误!代码错误周期 npm错误!neutro@1.0.0start:`node server.js` npm错误!退出状态1 npm错误! npm ERR!在以下位置失败:neutro@1.0.0启动脚本“node server.js”。 npm ERR!这很可能是中子组件的问题, npm错误!与npm本身无关。 npm ERR!告诉作者此操作在您的系统上失败: npm ERR!node server.js npm ERR!您可以通过以下方式获取他们的信息: npm错误!npm所有者ls中子 npm ERR!上面可能还有其他日志输出。 npm ERR!请在任何支持请求中包含以下文件:
npm ERR!C:\Users\Balajee\Desktop\project\Neutro\npm-debug.log
Yes request.params不是函数,您应该执行

req.params.position;

C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:66 user.local.position=req.params.position;^TypeError:无法在查询时设置未定义的属性“position”。(C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:66:33)在C:\Users\Balajee\Desktop\project\Neutro\node_modules\mongoose\node_modules\kareem\index.js:177:19在C:\Users\Balajee\Desktop\project\Neutro\node_modules\kareem\index.js:109:16在nexttickCallback中,在进程中使用0个参数(node.js:415:9)。\n.js:344:13您需要检查user.local是否未定义。如果未定义,并且希望在数据库中创建,则必须执行类似操作。
user.local={};user.local.position=req.params(“position”);user.local.operation=req.params(“operation”);user.local.userip=req.params(“userip”);
只需调试
user
,就像您在回调中得到的一样。我得到的是未定义的user.local。我得到的是user.save。按照您的步骤@Garg后,save不是一个函数,请帮助。
req.body.position
req.body[“position”]
是有效的表示法,正文解析器应该在“body”中放置一个POST。但是请检查您的“POST”请求是否发送了您所认为的内容。
console.log(req.body)
应该对此进行排序。这是我在使用console.log(req.body){position:'1',operation:'add',userip:'1'时得到的结果所以
position:'1'
不是数组,如果它是数组,那么它将是
position:['1']
。这就是mongoose抛出错误的原因。您试图做什么?用单个元素数组覆盖数组数据?还是尝试“追加”改为将新元素添加到数组中?当我使用req.body.position{position:['1','2'],操作:'add',userip:'11'}时获取此错误C:\Users\Balajee\Desktop\project\Neutro\app\routes.js:67 user.local.position=req.body.position;^TypeError:无法设置未定义的属性“position”这是检查位置的我的函数;console.log(arr);checkedPosition.length=0;for(var i=0;inputElements[i];i++){if(inputElements[i].checked){checkedPosition.push(inputElements[i].value);}}}console.log(checkedPosition);return checkedPosition;这是我在onsubmit上以`函数validateIP(){var position=ckposition()的形式链接的函数;var operation=sloperation();var userip=saveOp();返回{position:position,operation:operation,userip:userip};}'
req.params.position;