javascript - 使用多个模块的回调函数

标签 javascript node.js

我有一个示例代码:

app.get('/webhook', function(req, res) {
  if (req.query['hub.mode'] === 'subscribe' &&
      req.query['hub.verify_token'] === VALIDATION_TOKEN) {
    console.log("Validating webhook");
    res.status(200).send(req.query['hub.challenge']);
  } else {
    console.error("Failed validation. Make sure the validation tokens match.");
    res.sendStatus(403);          
  }  
});

然后现在我想将回调函数中断到新模块。我将此函数保存在Verify.js中:

function ValidationToken(req, res) {
  if (req.query['hub.mode'] === 'subscribe' &&
      req.query['hub.verify_token'] === VALIDATION_TOKEN) {
    console.log("Validating webhook");
    res.status(200).send(req.query['hub.challenge']);
  } else {
    console.error("Failed validation. Make sure the validation tokens match.");
    res.sendStatus(403);          
  }  
}
exports.ValidationToken=ValidationToken;

但是现在我不能使用这个函数进行回调:

var VefiryQuery=require("./Facebook/VerifyRequest");
 var ValidationToken=VefiryQuery.ValidationToken();
app.get('/webhook', ValidationToken(req,res){});

然后我收到错误:req 和 res 未定义。
我怎样才能打破它?

最佳答案

在将其作为回调传递之前,您不必调用 ValidationToken() 函数:

var VefiryQuery = require("./Facebook/VerifyRequest");
var ValidationToken = VefiryQuery.ValidationToken;
app.get('/webhook', ValidationToken);

关于javascript - 使用多个模块的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37939569/

相关文章:

javascript - 如何在现有 <div> 光标位置单击按钮时插入新 <div>

node.js - 来自 child_process.spawn curl 请求的流式响应

node.js - 遍历 Node 之间的最优路径

node.js - 为什么我要为所有路由处理程序添加前缀

node.js - 使用node.js打印带有条形码的标签

javascript - 如何用 jQuery 选择这个元素?

javascript - 如何在leafletjs中将传单标记设置为div标签的中心

javascript - Web Audio API - 为什么我的音频处理回调没有收到播放时间?

javascript - 使用 XML 类时出现 Flowtype 错误

javascript - 将控制台输出从 Node 转换为网页?