Node Restify 发回一个整数?

Node Restify send back an integer?

这是我尝试让 Facebook 为我的机器人验证 URL 时得到的结果。我知道这是一个数据类型问题。我发回一个字符串而不是一个整数。这是我的代码的样子:

server.get("/webhook/",function(req,res,next){
    var token = req.query.hub.verify_token;
    if( token === process.env.VALIDATION_TOKEN ){
        var challenge = parseInt( req.query.hub.challenge );
        res.send( req.query.hub.challenge );
    }else{
        res.send("Error, wrong validation token");
    }
    return next();

});

尽管 parseInt()res.send() 发回了一个字符串。我如何让它发回一个整数?

所以结果 res.send 只根据 restify docs 发回对象、数组、缓冲区或字符串(尽管 express 也是如此)。

要发回一个整数,您有 2 个(大约 3 个)选项:

  1. 使用这样的缓冲区:

    var buf = new Buffer(4);
    buf.writeUInt32BE(challenge, 0);
    res.send(buf);
    
  2. 使用res.write(challenge)res.end(challenge)。有关更多信息,文档是 here and here.

你可以试试res.end(req.query.hub.challenge.toString());

我了解到 res.end 需要 String 类型作为参数。因此,将数字转换为字符串可能有效。