当前位置:   article > 正文

怎么在nodejs服务里面调用外部接口,get和post方式_electron+ nodejs加载第三方并实现接口通信

electron+ nodejs加载第三方并实现接口通信

2018年1月22日 

欢迎来到的Altaba的博客

众所周知node是打破前端壁垒最快捷的途径,项目开发中需要写一个nodejs+express+mongodb记录浏览网页的信息,但是由于公司前期未计划到这步,所以有些数据需要调用后端同事的api把一些MongoDB数据实时传入后台,故我这边nodejs中要不定时的做ajax请求调用外部的api(非nodejs API),实现如下:

利用nodejs固有的“http”模块中request()方法

  1. //对比联系人创建时间和当前时间差在两分钟内
  2. let screenLandContacts = function (data) {
  3. //let now = new Date();
  4. let newData = [];
  5. let preTime = new Date().getTime();
  6. data.forEach((item)=> {
  7. // console.log(item.createtime);
  8. // console.log(preTime);
  9. let initTime = preTime - item.createtime;
  10. // console.log(initTime);
  11. if(initTime < 120000){
  12. newData.push({
  13. skey:item.skey,
  14. contact_info:item.contact_info
  15. })
  16. }
  17. });
  18. return newData;
  19. }
  20. //获取所有登录的联系人信息
  21. let searchLandContacts = function () {
  22. contactDB.findAll().then((data)=> {
  23. let newData = screenLandContacts(data);
  24. //let newDataL = JSON.stringify(newData);
  25. // let postData = querystring.stringify({
  26. // 'contacts' : newData ? newData : '[]'
  27. // });
  28. let postData = {
  29. contacts : JSON.stringify(newData)
  30. };
  31. let options = {
  32. hostname: 'rest_t.soup.ai',
  33. //port: 80,
  34. path: '/contact/online',
  35. method: 'POST',
  36. headers: {
  37. 'Content-Type': 'application/x-www-form-urlencoded',
  38. 'Content-Length': Buffer.byteLength(formatParams2(postData))
  39. }
  40. };
  41. let req = nodeHttp.request(options, (res) => {
  42. //console.log(`STATUS: ${res.statusCode}`);
  43. //console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
  44. res.setEncoding('utf8');
  45. res.on('data', (chunk) => {
  46. console.log(`BODY: ${chunk}`);
  47. });
  48. res.on('end', () => {
  49. console.log('No more data in response.');
  50. });
  51. });
  52. req.on('error', (e) => {
  53. console.log(`problem with request: ${e.message}`);
  54. });
  55. // write data to request body
  56. console.log(postData);
  57. //格式化参数
  58. req.write(formatParams2(postData));
  59. req.end();
  60. }, (err)=> {
  61. dbLog.error('find contact error: ' + err);
  62. });
  63. };
  64. //循环发送
  65. let sendWsMessage = function () {
  66. setInterval(function () {
  67. searchLandContacts();
  68. },15000)
  69. };
  70. sendWsMessage();


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/69030
推荐阅读
相关标签
  

闽ICP备14008679号