#node.js #express
Вопрос:
Здесь я фильтрую общедоступный ip-адрес, и только в том случае, если IP исходит от F_IP, C_IP, я буду запускать свой сервер. Но что происходит, так это то, что мое обещание находится в состоянии ожидания ( PublicIP.v4().затем(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.");
}
});
});
}
}