我试图通过从node.js到PHP文件的POST来请求用户的状态。 我的问题是,我呼叫的网络服务回复非常慢(4秒),所以我认为.then在4秒之前完成,因此什么都不返回。知道我是否可以延长请求的时间?
requestify.post('https://example.com/', {
email: 'foo@bar.com'
})
.then(function(response) {
var answer = response.getBody();
console.log("answer:" + answer);
});
答案 0 :(得分:2)
我对请求知之甚少,但您确定可以使用帖子到https地址吗?在自述文件中,只有requestify.request(...)使用https地址作为示例。 (see readme)
我绝对可以给你一个提示,就是永远接受你的承诺:
requestify.get(URL).then(function(response) {
console.log(response.getBody())
}).catch(function(err){
console.log('Requestify Error', err);
next(err);
});
这至少应该是你的承诺的错误,你可以指定你的问题。
答案 1 :(得分:1)
每次调用Requestify都允许你传递一个Options
对象,这里描述了该对象的定义:Requestify API Reference
您正在使用short
方法进行POST,因此我首先会显示,但同样的语法也适用于put
,请注意get
,{ {1}},delete
不接受数据参数,您通过head
配置属性发送网址查询参数。
params
现在,requestify.post(url, data, config)
requestify.put(url, data, config)
requestify.get(url, config)
requestify.delete(url, config)
requestify.head(url, config)
有一个config
属性
超时 {number}
设置请求的超时(以毫秒为单位)。
因此我们可以使用以下语法指定60秒的超时:
timeout
或内联:
var config = {};
config.timeout = 60000;
requestify.post(url, data, config)
所以我们现在将它们放在原始请求中:
正如@Jabalaja指出的那样,你应该捕获任何异常消息,但是你应该使用延续的错误参数来执行此操作。 (
requestify.post(url, data, { timeout: 60000 })
)
.then