Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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 next()不是';不要跳过中间件的其余部分_Javascript_Node.js_Express - Fatal编程技术网

Javascript next()不是';不要跳过中间件的其余部分

Javascript next()不是';不要跳过中间件的其余部分,javascript,node.js,express,Javascript,Node.js,Express,我对整个express路由逻辑(以及node和js)都是新手。但我有一个问题,我似乎无法追踪,但我想我理解它的背景。好吧,现在,这没什么意义了,反正是这样 我正试图根据req.query中的数据有条件地跳过中间件,它会很好地呈现预期的表单页面,除了我在控制台中从上一个中间件获得“Cannot send header tweep…”这一事实之外,我认为我跳过了它 根据我所能收集的信息,next()应该立即让我进入下一个中间件,并完全跳过该块的其余部分(有点像return如何将您踢出函数)。这不对吗

我对整个express路由逻辑(以及node和js)都是新手。但我有一个问题,我似乎无法追踪,但我想我理解它的背景。好吧,现在,这没什么意义了,反正是这样

我正试图根据req.query中的数据有条件地跳过中间件,它会很好地呈现预期的表单页面,除了我在控制台中从上一个中间件获得“Cannot send header tweep…”这一事实之外,我认为我跳过了它

根据我所能收集的信息,next()应该立即让我进入下一个中间件,并完全跳过该块的其余部分(有点像
return
如何将您踢出函数)。这不对吗

路径:localhost:3000/JohnnyBoy?action=form

    router.get('/:name/', function(req, res, next) {

      if(req.query.action !== 'view') { next(); };

      console.log('Why am I seeing this in the console?');

      res.render('first', { 
        title: req.params.name 
        });
    });

    router.get('/:name/', function(req, res, next) {

        res.render('form', {  
                  title: req.params.name + ' This is a form page', 
                  formFields: fields.userPostFields()
                  });
    });

您需要放入
返回next()
后的code>;仅调用next()不会停止当前函数的执行

替换

if(req.query.action!=='view'){next();}


if(req.query.action!='view'){next();return;}

您需要将
返回next()
后的code>;仅调用next()不会停止当前函数的执行

替换

if(req.query.action!=='view'){next();}


if(req.query.action!='view'){next();return;}

侧注:附加到控制流语句的块(如
if
)自行终止;否<代码>在它之后是必需的。(只有在JavaScript中空语句才有效。)好的,很高兴知道。仍然在这里找到我的表单(没有双关语)…旁注:附加到控制流语句的块(如
if
)自行终止;否<代码>在它之后是必需的。(只有在JavaScript中空语句才有效。)好的,很高兴知道。仍然在这里找到我的形式(没有双关语的意思)…现在,这很有意义。来自C语言的mcu,我一直觉得js几乎是一个读心术的人,让我在执行和范围方面思考起来很奇怪。无论如何,谢谢你,伙计!现在,这很有道理。来自C语言的mcu,我一直觉得js几乎是一个读心术的人,让我在执行和范围方面思考起来很奇怪。无论如何,谢谢你,伙计!