问题描述
摘要
我正在创建一个程序,以将请求发送到HTTP端点,如下所示。
- 通过POST发送HTTP请求
- 接收响应数据
- PUT在POST响应期间通过POST接收到的ID和时间发出的HTTP请求。
- 接收响应数据
代码
正在制作的nodejs
'use strict'
const http = require('http');
const HOST = `hoge.io`;
const PATH = `/path`;
let postData = {
"name": "stack",};
let postDataStr = JSON.stringify(postData);
let options = {
host: HOST,port: 80,path: PATH,method: 'POST',headers: {
'Content-Type': 'application/json','Content-Length': Buffer.byteLength(postDataStr)
}
};
let req = http.request(options,(res) => {
let data = '';
let body = '';
console.log(`POST statusCode: ${res.statusCode}`)
res.setEncoding('utf8');
res.on('data',(chunk) => {
body += chunk;
});
res.on('end',() => {
let resultData = '';
data = JSON.parse(body);
let Now = new Date().getTime();
let time = data.actives_at - Now;
// setTimeout(putData.bind(this,data),time);
console.log(data)
});
});
req.on('error',(e) => {
console.log('error: ' + e.message);
});
req.write(postDataStr);
req.end();
响应值
node api.js
{
id: 'xxxxxxxxxxx',actives_at: xxxxxxxxxx (in UNIX time milliseconds),called_at: xxxxxxxxxx,}
我想做什么。
当到达actives_at的时间时,我们希望通过PUT将请求发送到端点,如下所示。
$ curl -X 'PUT' -H 'X-Id:xxxxxxxxxx' http://hoge.io/path
要实现此目标,我需要对代码进行哪些补充?
解决方法
您可以考虑使用AgendaJS(https://github.com/agenda/agenda),这是一个使用Mongodb存储数据的调度程序。 它将接受Date对象,时间戳或MomentJS对象,并在时间到来时运行您定义的函数