Node.js 两节点服务器之间的通信
我有一个节点服务器运行在3010端口,它返回一个JSON,当我运行它并从浏览器调用路由时,它会正确响应 除此之外,我还有另一个在端口3000中运行的节点服务器,它应该在第一个端口中调用路由 通过console.log,我知道此服务器正在调用: http://localhost:3010/ 但是,在localhost:3010中运行的服务器从未收到请求 它们在windows 10中运行在单独的cmd shell中,浏览器可以连接到它们 有人能帮忙解决这个问题吗 两台服务器共用: server.jsNode.js 两节点服务器之间的通信,node.js,hapi,Node.js,Hapi,我有一个节点服务器运行在3010端口,它返回一个JSON,当我运行它并从浏览器调用路由时,它会正确响应 除此之外,我还有另一个在端口3000中运行的节点服务器,它应该在第一个端口中调用路由 通过console.log,我知道此服务器正在调用: http://localhost:3010/ 但是,在localhost:3010中运行的服务器从未收到请求 它们在windows 10中运行在单独的cmd shell中,浏览器可以连接到它们 有人能帮忙解决这个问题吗 两台服务器共用: server.js
const { init } = require('./hapiServer.js');
const start = async () => {
const server = await init();
await server.start();
console.log(`Server running at: ${server.info.uri}`);
Util.Logger.info(`Server running at: ${server.info.uri}`);
})
hapiser.js
const Hapi = require( '@hapi/hapi' )
const Util = require('@myCompany/configJsonUtility');
const server = Hapi.server( {
port: Util.ConfigJson.server.port,
host: Util.ConfigJson.server.host,
routes: { cors: { origin: ['*'], credentials: true }, timeout: { socket: 60000 * 10 } }
} )
await server.register({
plugin: require('./app/appPlugin')
});
第一台服务器:
config.json
{
"server" : {
"host":"localhost",
"port":"3000",
"pdfEngine":"libreoffice"
},
"dataApi" :{
"ipg":{
"url":"http://localhost:3010/"
}
}
}
appPlugin:
const myPlugin = {
name: 'app',
version: '1.0.0',
register: function (server, options) {
//Add route to server
server.route( {
method: ['POST','GET'],
path: '/',
handler: (request, reply) => {
const res = await requestData(query, queryParameters, headers);
console.log('res:');
console.log(res);
}
} );
}
};
const requestData = (query, queryParameters, headers) => {
return new Promise(((resolve, reject) => {
// this will hold our processed query
let localQuery = query;
// console.log(localQuery);
// Get instSigla to connect to the correct dataApi configuration
const idx = queryParameters.idx.toLowerCase();
// Let's replace parameters in the query with it's value from url
// For now we support just one replace per parameter TODO replace all occurrences of a key
for (const key in queryParameters) {
localQuery = localQuery.replace('##' + key + '##', queryParameters[key]);
}
const requestOptions = {
uri: Util.ConfigJson.dataApi[idx].url + localQuery,
method: 'POST',
headers,
json: true,
rejectUnauthorized: false
};
try {
Request(requestOptions, (err, res, body) => {
if (err) {
return reject(err);
}
Util.Logger.trace( body);
resolve(body);
});
}
catch (err) { // catches errors
Util.Logger.error(err);
reject(err);
}
}));
};
module.exports = myPlugin;
const TestFile = require('../test.json');
const myPlugin = {
name: 'app',
version: '1.0.0',
register: function (server, options) {
//Add route to server
server.route( {
method: 'GET',
path: '/{any*}',
handler: (request, reply) => {
console.log('request');
console.log(request);
return TestFile;
}
} );
}
};
module.exports = myPlugin;
第二台服务器:
config.json:
{
"server" : {
"host":"localhost",
"port":"3010"
}
}
appPlugin:
const myPlugin = {
name: 'app',
version: '1.0.0',
register: function (server, options) {
//Add route to server
server.route( {
method: ['POST','GET'],
path: '/',
handler: (request, reply) => {
const res = await requestData(query, queryParameters, headers);
console.log('res:');
console.log(res);
}
} );
}
};
const requestData = (query, queryParameters, headers) => {
return new Promise(((resolve, reject) => {
// this will hold our processed query
let localQuery = query;
// console.log(localQuery);
// Get instSigla to connect to the correct dataApi configuration
const idx = queryParameters.idx.toLowerCase();
// Let's replace parameters in the query with it's value from url
// For now we support just one replace per parameter TODO replace all occurrences of a key
for (const key in queryParameters) {
localQuery = localQuery.replace('##' + key + '##', queryParameters[key]);
}
const requestOptions = {
uri: Util.ConfigJson.dataApi[idx].url + localQuery,
method: 'POST',
headers,
json: true,
rejectUnauthorized: false
};
try {
Request(requestOptions, (err, res, body) => {
if (err) {
return reject(err);
}
Util.Logger.trace( body);
resolve(body);
});
}
catch (err) { // catches errors
Util.Logger.error(err);
reject(err);
}
}));
};
module.exports = myPlugin;
const TestFile = require('../test.json');
const myPlugin = {
name: 'app',
version: '1.0.0',
register: function (server, options) {
//Add route to server
server.route( {
method: 'GET',
path: '/{any*}',
handler: (request, reply) => {
console.log('request');
console.log(request);
return TestFile;
}
} );
}
};
module.exports = myPlugin;
请您添加代码的相关部分,以便我们了解该请求是如何提出的?您是否尝试显示该请求的状态和响应,以查看是否存在任何错误?您也可以尝试使用
127.0.0.1
而不是localhost
,以防别名不起作用