如何从Express.js发布到api

我是Node / Express和API的新手。 长话短说,我是第一次潜入后端和架构的前端人物。 我的问题细目如下:

应用程序描述:一个Web应用程序,允许用户查看医疗数据logging。

所需function:在页面加载时更改jsonlogging的状态。 当用户打开一个logging(页面)时,我想将JSON对象从UNDIAGNOSED自动更改为DIAGNOSED。 这需要在服务器端完成,以避免暴露的API端点,这需要保持隐藏的安全原因。 把它想象成一个“读/不读”电子邮件。 一旦它被打开,它将状态改变为“读”

Probelem:…我是一个新手…

//When the server GETs a request to this URL router.get('/content/:contentid', function(req, res, next) { // Configure the REST platform call var platform_options = { resource: '/content/' + req.params.contentid, method: 'POST', json: "diagnosis_state: DIAGNOSED" }; // Make the call var platform = ihplatform(_config, req.session, platform_options, callback); platform.execute(); // Result processing function callback(error, response, body) { console.log(response.body); } }); 

我正在使用由其他开发人员内部构build的自定义HTTP API。 调用的端点是通过re.params.contentiddynamic生成的。 你也会注意到这个调用本身是内置在platform.execute函数中的。

有一点复制/粘贴正在进行,因为我正在尝试修改正在进行的调用。

我的问题是这样的:我如何通过express.js的HTTP请求一个特定的url进行api POST调用远程API?

这是你可以在express.js上做什么 –

1)在一个单独的js文件中为路由映射编写一个模块,其中可以列出所有的映射。 以下是模块文件的代码片段

 function mappings(app) { var email = require('./routes/emails');// ./routes/emails is js file location exporting UpdateEmail variable which contains function for update app.put('/email/update', email.UpdateEmail); // mapping url /email/update to exported variable UpdateEmail } 

我不太确定你的问题,因为“从ExpressJS发布”可能意味着两件不同的事情。

在最常见的情况下,您正在从网页发出POST请求。 虽然这可能是服务,甚至通过Express呈现,呼叫源于网页。 在这种情况下,网页上的JavaScript正在发布。 常见的Web框架可能是jQuery的$.ajax或Angular的$http 。 无论您使用哪种框架,您都将定义要发布的数据,要发布的API端点以及如何处理响应。

您的问题的另一个含义可能是您希望您的快速应用程序从服务器端发出http请求。 您将需要一个包来执行此操作,以便您可以编程方式进行HTTP。 一个受欢迎的包是这个请求 。

不知道你正在使用什么框架,很难说更多。 继续search,你会发现!

我想你正在寻找request.js。

 var request = require('request'); request.post('/content/' + req.params.contentid').form({json: "diagnosis_state: DIAGNOSED"})