Javascript 节点恢复发送回一个整数?
这是当我尝试通过Facebook验证我的机器人URL时得到的结果。我知道这是一个数据类型问题。我正在发回一个字符串而不是int。下面是我的代码:Javascript 节点恢复发送回一个整数?,javascript,node.js,facebook,bots,restify,Javascript,Node.js,Facebook,Bots,Restify,这是当我尝试通过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( re
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?结果是res.send
只发回每个的对象、数组、缓冲区或字符串(尽管express也是如此)
要发回整数,您有2(排序3)个选项:
var buf = new Buffer(4);
buf.writeUInt32BE(challenge, 0);
res.send(buf);
res.write(challenge)
或res.end(challenge)
。有关更多信息,请参阅和res.end(req.query.hub.challenge.toString())代码>
据我所知,res.end
希望有一个String
类型作为参数。因此,将数字转换为字符串可能会起作用。Ok,结果表明req.query.hub.challenge实际上是一个整数。res.send()使它成为一个字符串好吧,我知道了。我不想深入研究,但是res.write()和res.end()发挥了神奇的作用:)@LittleChild是的,我正准备用这个或使用缓冲区的方法来回应。我会更新我的答案,以防其他人发现这一点question@LittleChild我已经更新了我的答案,以显示如何使用can-useres.send
我正在使用节点Restify:)而不是Express:),但我仍然会接受答案