我能够在本地计算机http://localhost:3000
上成功运行nodejs,expressjs,socket.io和mongodb appplication
现在,我已经在支持nodejs的真实服务器上上传了应用程序但是如何使用端口3000运行应用程序?所以www.mywebsite.com/MyApp:3000
不起作用:(我是否必须在PORT中运行?
这是我的服务器app.js代码:
var express = require('express');
var mongoose = require ('mongoose');
var app = express();
app.use('/', express.static('../app/'));
app.use('/bower_components', express.static('../bower_components/'));
var http = require('http').Server(app);
var io = require('socket.io')(http);
//mongodb databse
mongoose.connect ('mongodb://127.0.0.1/mydb', function (err) {
if (err) {
console.log (err);
} else {
console.log ("Connected to mongodb");
}
});
io.sockets.on ('connection', function (socket) {
console.log("hello world, I'm running fine!")
});
http.listen(3000, function () {
'use strict';
});
编辑:如果我使用端口80,我会收到此错误:
events.js:87
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at exports._errnoException (util.js:748:11)
at Server._listen2 (net.js:1123:19)
at listen (net.js:1166:10)
at Server.listen (net.js:1251:5)
....etc
答案 0 :(得分:0)
要使用您现有的节点/快速代码在生产环境中运行您的应用程序,您可以导航到http://www.mywebsite.com:3000/MyApp
(假设您的防火墙允许端口3000)
您可以通过更改代码的这一部分来更改端口:
http.listen(3000, function () {
'use strict';
});
网络的标准端口是80.因此您可以将其更改为
http.listen(80, function () {
'use strict';
});
然后正常使用您的网址 - http://www.mywebsite.com/MyApp
注意:如果您的服务器上有另一个使用此端口的Web服务器,那么您将遇到问题,因为在端口空闲之前它不会侦听。您必须先禁用其他在端口80上侦听的Web服务器。 非特权用户(非root用户)也无法监听1024以下端口上的套接字。