node.js

时间:2018-06-08 05:33:31

标签: node.js express redirect port url-redirection

我有两个服务器(在两个不同的端口上运行),一个用于聊天应用程序,另一个用于API生成服务器(用户应该通过提供公司注册)  细节,我的算法为用户提供了一个API密钥。

问题是,我正在检查用户提供的有效API密钥,如果API密钥为true,那么它应该重定向到聊天服务器(端口号5200)。

但它不起作用,请提出解决此问题的任何想法。

这是我的代码,

`

app.post('/checkAPIkey',function(req,res){
        var apikey=req.query.apikey;

        var apikey1=uuidAPIkey.isAPIKey(apikey);
        if(apikey1){
            res.writeHead(302, {
    Location: 'http://localhost:5200'
});
        }else{
            res.end("error");
        }

});`

1 个答案:

答案 0 :(得分:-1)

您需要的是“请求转发”。

示例:

const http = require('http');

app.post('/checkAPIkey', function(req,res){
    var apikey=req.query.apikey;

    var apikey1 = uuidAPIkey.isAPIKey(apikey);
    if(apikey1){
        const options = {
            port: NEW_PORT,
            hostname: 'NEW_HOST',
            method: 'POST',
            path: '/'
         };
        var reqForward = http.request(options, (newResponse) => {
                //Do something with your newResponse
                var responseData = "";
                newResponse.on('data', (chunk) => {
                    //Add data response from newResponse
                    responseData += chunk;
                });

                newResponse.on('end', () => {
                    //Nothing more, send it with your original Response
                    response.send(responseData);
                });
        });

        // If ERROR
        reqForward.on('error', (e) => {
             console.error('Error: ' + e);
        });

        // Write to the request
        reqForward.write(YOUR_POST_DATA);
        reqForward.end();
    } else {
        res.end("error");
    }
});