Node.js 两节点服务器之间的通信

Node.js 两节点服务器之间的通信,node.js,hapi,Node.js,Hapi,我有一个节点服务器运行在3010端口,它返回一个JSON,当我运行它并从浏览器调用路由时,它会正确响应 除此之外,我还有另一个在端口3000中运行的节点服务器,它应该在第一个端口中调用路由 通过console.log,我知道此服务器正在调用: http://localhost:3010/ 但是,在localhost:3010中运行的服务器从未收到请求 它们在windows 10中运行在单独的cmd shell中,浏览器可以连接到它们 有人能帮忙解决这个问题吗 两台服务器共用: server.js

我有一个节点服务器运行在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
,以防别名不起作用