我不确定Twilio Authy register_user()
的成功回调是否正在解雇。在我的代码中
var authyUsrId;
//global.authyUsrId;
app.post('/forTwilio', function(req, res){
// send the received data to Twilio Authy
authy.register_user('maverick@example.com', '8753565612', '91', function(err, res){
//global.authyUsrId = 'world';
authyUsrId = 'world';
});
//res.set("Content-Type","application/json");
res.json({name: 'hello', msg: authyUsrId});
//res.json({name: 'hello', msg: global.authyUsrId});
});
虽然新用户已成功添加到Authy,但响应状态为200。
我想将authyUsrId的值设置为register_user()
成功回调中的某些内容,并将其用于我发送给POST请求的JSON响应中。
但是在回复中我只得到了这个
{name: 'hello'}
有没有办法调试register_user()回调部分?
答案 0 :(得分:1)
Twilio开发者传道者在这里。
我看到你已经在your answer解决了这个问题,但是我只是想解释一下发生了什么以及为什么这是你的解决方案。
在原始代码中:
app.post('/forTwilio', function(req, res){
authy.register_user('maverick@example.com', '8753565612', '91', function(err, res){
authyUsrId = 'world';
});
res.json({name: 'hello', msg: authyUsrId});
});
您将回调中的authyUsrId
变量从API请求设置为Authy。然后,您尝试在调用中使用authyUsrId
来响应JSON。但是,register_user
是一个异步调用,因此它下面的代码会在回调中运行的代码之前运行。实际上,reguster_user
函数必须发出HTTP请求,因此只有在请求完成后才会运行回调。
如果您将记录添加到原始代码中,请执行以下操作:
app.post('/forTwilio', function(req, res){
authy.register_user('maverick@example.com', '8753565612', '91', function(err, res){
console.log("Received response from Authy");
authyUsrId = 'world';
});
console.log("Sending JSON response");
res.json({name: 'hello', msg: authyUsrId});
});
您会在日志中看到:
Sending JSON response
Received response from Authy
您的修复是在您拥有所需的所有数据时回复回调中的原始网络请求。这就是它起作用的原因。如果我正在更新您的原始代码,现在看起来像:
app.post('/forTwilio', function(req, res){
authy.register_user('maverick@example.com', '8753565612', '91', function(err, res){
authyUsrId = 'world';
res.json({name: 'hello', msg: authyUsrId});
});
});
希望这是有道理的。
答案 1 :(得分:0)
我解决了。直接从app.post('/forTwilio', function(req, res){
// send the received data to Twilio Authy
authy.register_user('jimmy@example.com', '9224753123', '91', function(err, res2){
res.send(res2.user);
});
});
的成功回调发送响应。
create procedure select_menu
(
@id int
)
begin
select * from t_vsubmenu where id=@id
end