【发布时间】:2016-09-29 20:53:17
【问题描述】:
我刚刚开始使用环回。我们正在环回中创建一个中间件,用户来并填写任务表单。当他提交表单时,我们将数据保存在我们的数据库中,然后我们需要调用第三方 REST API 来存储附加了我们的数据库返回的 ID 的相同数据。 我读到了环回中的 REST 连接器,但我认为它没有达到目的。所以我决定继续使用请求库。 我创建了一个 RemoteMethod,我正在做这一切。这是代码:-
const request = require('request');
const url = "http://third-party-api";
module.exports = function(Tasks) {
function cb(err, data){
return { data: data };
}
Tasks.add = function(data, cb){
Tasks.create({data: data}, function(err, object){
var taskId = object.id
request.get({url: url}, function(error, response, body){
cb(error, body);
});
});
};
Tasks.remoteMethod(
'add',
{
accepts: [{arg: 'data', type: 'object'}],
returns: {arg: 'result', type: 'object'},
http: {path: '/add', verb: "post"}
}
);
};
但这会导致错误(IP已更改):-
{"error":{"name":"Error","status":500,"message":"connect ECONNREFUSED 0.0.0.0","code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect","address":"0.0.0.0"}}
我无法弄清楚这里发生了什么。 NodeJs、Express、Loopback 对我来说一切都是新事物,而且我已经在圈子里转了很长时间。 我究竟做错了什么?还有其他我需要遵循的方法吗
【问题讨论】:
-
connect ECONNREFUSED表示您无法与服务器通信。可能是它的端口问题。检查与服务器通信所需的所有信息 -
尝试从浏览器访问您的第三方 API 并检查它是否为您提供任何信息
-
报错进来的IP不是我的公网IP,甚至进来的端口也和loopback服务器的不一样。
-
我可以使用请求库从节点控制台访问他们的服务器。第三方 API 需要基本身份验证。无法通过浏览器拨打电话。
-
在使用
request模块进行请求时,您在哪里传递auth信息
标签: node.js express loopbackjs