どのようにnodejsサービスの中で外部インターフェースを呼び出して、getとpost方式ですか?
2660 ワード
2018年1月22日
いらっしゃいませ、Altabaのブログです.
ご存知のように、nodeはフロントエンドの壁を破る一番早いルートです.プロジェクト開発にはnodejs+express+mongodbでウェブページを閲覧する情報を記録しなければなりません.しかし、会社の前の段階ではこのステップを計画していないので、バックエンドの同僚のapiを呼び出して、いくつかのMongoDBデータをリアルタイムにバックグラウンドに伝えなければなりません.(nodejs APIではない)は、以下のように実現される.
nodejs固有の「http」モジュールを利用したrequest()方法
いらっしゃいませ、Altabaのブログです.
ご存知のように、nodeはフロントエンドの壁を破る一番早いルートです.プロジェクト開発にはnodejs+express+mongodbでウェブページを閲覧する情報を記録しなければなりません.しかし、会社の前の段階ではこのステップを計画していないので、バックエンドの同僚のapiを呼び出して、いくつかのMongoDBデータをリアルタイムにバックグラウンドに伝えなければなりません.(nodejs APIではない)は、以下のように実現される.
nodejs固有の「http」モジュールを利用したrequest()方法
//
let screenLandContacts = function (data) {
//let now = new Date();
let newData = [];
let preTime = new Date().getTime();
data.forEach((item)=> {
// console.log(item.createtime);
// console.log(preTime);
let initTime = preTime - item.createtime;
// console.log(initTime);
if(initTime < 120000){
newData.push({
skey:item.skey,
contact_info:item.contact_info
})
}
});
return newData;
}
//
let searchLandContacts = function () {
contactDB.findAll().then((data)=> {
let newData = screenLandContacts(data);
//let newDataL = JSON.stringify(newData);
// let postData = querystring.stringify({
// 'contacts' : newData ? newData : '[]'
// });
let postData = {
contacts : JSON.stringify(newData)
};
let options = {
hostname: 'rest_t.soup.ai',
//port: 80,
path: '/contact/online',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(formatParams2(postData))
}
};
let req = nodeHttp.request(options, (res) => {
//console.log(`STATUS: ${res.statusCode}`);
//console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
});
res.on('end', () => {
console.log('No more data in response.');
});
});
req.on('error', (e) => {
console.log(`problem with request: ${e.message}`);
});
// write data to request body
console.log(postData);
//
req.write(formatParams2(postData));
req.end();
}, (err)=> {
dbLog.error('find contact error: ' + err);
});
};
//
let sendWsMessage = function () {
setInterval(function () {
searchLandContacts();
},15000)
};
sendWsMessage();