#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 был заблокирован из-за какой-то проблемы. В любом случае ваш ответ мне помог .. 🙂