首页 > 解决方案 > 承诺处于待处理状态导致快递服务器未运行

问题描述

在这里,我正在过滤公共 IP,只有当 IP 来自 F_IP、C_IP 时,我才会运行我的服务器。但是发生的情况是我的承诺处于待处理状态( publicIp.v4().then(ip => {; )或者需要一些时间才能启动哪个服务器

结果,服务器没有启动

有什么我做错了吗?

const publicIp = require('public-ip');
const aws = require('aws-sdk');
const s3  = new aws.S3();

async function getFileFromAWS(params){
 return s3.getObject(params).promise();
}

  
function startProcess() {
    var config = require('./config');
    if (process.env.NODE_ENV != "development") {
        let getParams = {
            Bucket: 'c',
            Key: 'A'
        }
        getFileFromAWS(getParams).then(configStub => {
            let objectData = configStub.Body.toString();

            objectData = JSON.parse(objectData);
            let fip = objectData.F_IP;
            let cip = objectData.C_IP;

            let validIps = [fip, cip];
            console.log(validIps, "validIps>>>>>>>>>>");
            publicIp.v4().then(ip => {
                console.log(ip, "========ip=================");
                if (validIps.includes(ip)) {
                    console.log('Starting Server...');
                    if (process.env.SERVER_ADDR) {
                        console.log('Region: ', require('s').utils.region.getByServerIp());
                        console.log('Running on IP: ', process.env.SERVER_ADDR);
                    }
                    const PORT = process.env.PORT || config.server.port;
                    console.log('Listening on Port:', PORT);
                    return app.listen(PORT);
                } else {
                    console.log('Error handler', err);
                    res.status(err.status || 500);
                    return res.send("You need to be on org IP to access the resource.");
                }
            });
        });
    }
}

标签: node.jsexpress

解决方案


推荐阅读