Node Restify发回一个整数?

问题描述 投票:1回答:2

enter image description here

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

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()发回一串。如何让它发回一个int?

javascript node.js facebook bots restify
2个回答
1
投票

所以事实证明res.send只会根据restify docs发回一个对象,数组,缓冲区或字符串(尽管快递也是如此)。

要发回一个整数,你有2个(sorta 3)选项:

  1. 使用这样的缓冲区: var buf = new Buffer(4); buf.writeUInt32BE(challenge, 0); res.send(buf);
  2. 使用res.write(challenge)res.end(challenge)。有关更多信息,文档是herehere

0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.