node.js - 构建自定义 API 连接器的常见方法有哪些?

标签 node.js rest express heroku

我主要拥有作为 Web 开发人员的编程经验,现在我的任务是在两个休息服务之间构建集成。假设应用程序每 5 分钟从一个 REST 服务读取一次,并将数据发送到另一服务。我需要以某种方式存储一个 checkSUM 值,以便在下次调用时使用。

目前,我正在考虑在 Node 和 Express 中构建它,并通过“自定义时钟流程”托管在 heroku 上。但我不确定构建此类应用程序的最佳方法是什么。对我来说,开发一个没有 View 的应用程序是很陌生的。 MVC 在这样的应用程序中有意义吗?

任何人都可以指出资源来解释处理此类应用程序的好方法吗?

即使没有 View 层,express 也有意义吗?

存储单个值(例如 checkSUM 或 SyncKey)的好方法是什么? DB 是否过度杀伤力?

对于这样的应用程序,文件夹结构会是什么样子。

我知道这是一个相当广泛的问题。我主要是在寻找建议和资源,以及其他人如何解决这个问题的想法。你会使用什么技术?

最佳答案

您可以使用request包以向您的服务发送请求。和cron包以每 5 分钟安排一次任务。

这是此场景的简单代码

var request = require('request');
var CronJob = require('cron').CronJob;

var SOURCE_SERVICE_URL = "http://your.source.service/endpoint";
var DESTINATION_SERVICE_URL =  "http://your.destination.service/endpoint";

//initialize this value when you get checkSUM from request and use to compare next checkSUM
var lastCheckSUM = "";

var everyMinuteJob = new CronJob({
    cronTime: '*/5 * * * *',
    onTick: function () {
        console.log("Task started");
        task_1();
        //you can create and add tasks for other endpoints
    },
    start: true
});


var task_1 = function () {
    request(SOURCE_SERVICE_URL, function (error, response, body) {
        if (error) {
            console.log("Can not read data from source service.")
            return console.log(error);
        }
        console.log("Data read : " + body);
        //TODO - check the checkSUM value of response. Then set it to lastCheckSUM

        request
            .post(DESTINATION_SERVICE_URL, body, function (error, response, body) {
                if (error) {
                    console.log("Can not send data to destination service.")
                    return console.log(error);
                }
            })

    });
}

关于node.js - 构建自定义 API 连接器的常见方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47330932/

相关文章:

node.js - API 分页、过滤、排序 VS CLIENT 分页、过滤、排序

javascript - 在express中使用返回值发送到ajax成功

javascript - 访问 Express 中的 get 请求返回的对象中的元素时遇到问题

node.js - 更新嵌套树中的后代 mongoDB、node.js

node.js - 向 Selenium Webdriver 网格发出并行请求

node.js - CustomPouchError 409 Conflict 文档更新冲突

node.js - req.body 在放置请求时返回空对象

javascript - Node.js - 从模块发出事件的最佳方法

javascript - AngularJs : Restangular

rest - 公开一对多关系的 RESTful 端点