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 使用此关键字调用函数时获取TypeError_Javascript_Node.js - Fatal编程技术网

Javascript 使用此关键字调用函数时获取TypeError

Javascript 使用此关键字调用函数时获取TypeError,javascript,node.js,Javascript,Node.js,我想用这个关键字调用一个文件中的函数,但是我得到了一个TypeError。 以下是我在一个文件中的部分代码: router.get('/products',函数(req,res){ 试一试{ 设page=req.query.page | | 1; 让products=Product.paginate({},{page,sort:{createdAt:1},limit:12,populate:[{path:'categories'},{path:'user'}]}); res.json({ 数据

我想用这个关键字调用一个文件中的函数,但是我得到了一个TypeError。 以下是我在一个文件中的部分代码:

router.get('/products',函数(req,res){
试一试{
设page=req.query.page | | 1;
让products=Product.paginate({},{page,sort:{createdAt:1},limit:12,populate:[{path:'categories'},{path:'user'}]});
res.json({
数据:此.filterProductsData(产品),
状态:“成功”
})
}捕捉(错误){
失败(err.message,res);
}
})
内置Express中间件功能。没有理由将
失败
称为
此。失败

如果在该中间件功能的范围内可用,则应将其称为
失败

  ...
  } catch (err) {
    failed(err.message, res);
  }
  ...

哦我删除了“this”关键字,一切正常。但我不明白为什么。我们为什么不在这里使用“this”关键字?它如何理解我们指的是继续编码的函数?我们应该在什么地方使用“this”关键字,在哪里不应该使用?一个更好的问题是为什么我们要在这里使用
this.failed
。我看不出有什么理由。随机使用
这个
不会有任何好处<代码>此可以是动态上下文(在这里),也可以是词法上下文并从父上下文继承(如果函数是此处的箭头函数,
将是一个
全局
或未定义)。我建议从基础开始。它如何理解我们指的是继续编码的函数因为
失败
在此功能范围内可用。您定义了它,它是可用的。