Приложение узла запущено на сервере, но не работает при попытке в браузере

#node.js

#node.js

Вопрос:

У меня есть небольшое приложение узла, которое выполняет некоторые операции с базой данных, локально оно работает нормально, но когда я пытаюсь запустить его на облачном сервере, оно отображается как запущенное, но ничего не видно в браузере

Я использую express Framework, а сервер работает в CentOS. Я перепробовал много решений, но ничего не работает

 // app.js
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
var cors = require('cors');
const http = require('http');

const routes1 = require('./routes/routes');

// initialize our express app
const app = express();

// const mongoDB = process.env.MONGODB_URI || dev_db_url;
mongoose.connect('<My mlab details>');
mongoose.Promise = global.Promise;
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));

var publicDir = require('path').join(__dirname,'/uploads/images/products');
app.use(express.static(publicDir));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cors())


app.use('/api/routes', routes1);


let port = 80;

const server = http.createServer(app);

server.listen(port)

app.listen(port, () => {
    console.log('Server is up and running on port numner '   port);
});

  

Я ожидаю, что порт будет правильно прослушиваться и сохраняться на сервере mlab

Комментарии:

1. не используйте порт 80. используйте порт> 1024. Также два экземпляра пытаются привязаться к одному и тому же порту.

2. «облачный сервер» может быть любой из большого количества возможных конфигураций. Информация о вашей цели развертывания необходима, чтобы знать, как помочь вам исправить это.

Ответ №1:

из вашего кода похоже, что вы используете express

здесь вы инициализируете экспресс

  const app = express();
  

просто прикрепите список к приложению

удалите эти две строки кода

 const server = http.createServer(app);

server.listen(port)
  

и используйте порт следующим образом

 let port = process.env.PORT || 8000;
  

это решит вашу проблему

это рабочий код

 // app.js
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
var cors = require('cors');
const http = require('http');

const routes1 = require('./routes/routes');

// initialize our express app
const app = express();

// const mongoDB = process.env.MONGODB_URI || dev_db_url;
mongoose.connect('<My mlab details>');
mongoose.Promise = global.Promise;
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection 
error:')); 

var publicDir = 
  require('path').join(__dirname,'/uploads/images/products');
  app.use(express.static(publicDir));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cors())


app.use('/api/routes', routes1);

let port = process.env.PORT || 8000;



app.listen(port, () => {
console.log('Server is up and running on port numner '   port);
});
  

Комментарии:

1. Спасибо за комментарий, моя проблема была с облачным сервером. IP был заблокирован из-за какой-то проблемы. В любом случае ваш ответ мне помог .. 🙂