Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Node.js 从节点导出函数时发生ReferenceError_Node.js_Express_Jestjs - Fatal编程技术网

Node.js 从节点导出函数时发生ReferenceError

Node.js 从节点导出函数时发生ReferenceError,node.js,express,jestjs,Node.js,Express,Jestjs,我正在编写一个测试文件来测试用jest编写的Express后端,但我不理解的是Node JS如何使用参数管理函数的导出。我有以下代码: function checkCredentials( u, p) { var check = false; if((vectorUsr.indexOf(u)!= -1) && (vectorPswrd.indexOf(p) != -1)) { check = true; }

我正在编写一个测试文件来测试用jest编写的Express后端,但我不理解的是Node JS如何使用参数管理函数的导出。我有以下代码:

function checkCredentials( u, p)
{ 
     var check = false;
     if((vectorUsr.indexOf(u)!= -1) && (vectorPswrd.indexOf(p) != -1))
     {
          check = true;
     }
     return check;
}
app.post('/home', function(req, res)
{
    if(checkCredentials(req.body.username, req.body.password))
    {
        req.session.success=true;
        console.log(req.body.username + " submitted Successfully!");
        console.log("POST HOME");
        res.status(200).render('home',{success: req.session.success});
    }
    else
    {
        req.session.success = false;
        res.status(403).redirect('/login');
    }
});
在文件末尾,我添加了这两行代码来进行测试:

exports.checkCredentials = checkCredentials(u,p);
module.exports = app;
在test.js(user和password字符串是vectorUser和vectorPswrd中包含的值)上,我写了:

    describe(' Login', () =>
    { test(' POST request', (done) =>
      { 
           request(app).post('/home').then((req) =>
           {
                expect(app.checkCredentials('user', 
                'password')).toBe(true).then((res) =>
                {
                     expect(res.statusCode).toBe(200);
                     done();
                })
           })
       })
   })
但是当我开玩笑的时候,控制台说

ReferenceError: u is not defined

  60 |     }
  61 |     else
> 62 |     {
  63 |         //Ritorno alla pagina di login
  64 |         req.session.success = false;
  65 |         res.status(403).redirect('/');

我真的不明白为什么会出现此错误

在本节中,您指的是变量
u

vectorUsr.indexOf(u)
但是
u
在任何地方都没有定义

我想你打算:

if((vectorUsr.indexOf(user)!= -1) && (vectorPswrd.indexOf(pswrd) != -1))

我在写问题的时候打错了对不起,现在问题的脚本是正确的。我注意到ReferenceError与代码不对应。我怀疑其中一个已经过时了。您能否更新其中一个以确保错误消息与代码一致?