运行 nodejs、expressjs、socket.io 真实服务器上的应用程序无法运行
Running nodejs, expressjs, socket.io application on a real server not working
我能够在本地计算机上成功 运行 nodejs、expressjs、socket.io 和 mongodb 应用程序 http://localhost:3000
现在,我已经把应用上传到支持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
要运行 使用现有节点/快速代码将您的应用程序导航至http://www.mywebsite.com:3000/MyApp
(假设您的防火墙允许端口 3000)
您可以通过更改这部分代码将端口更改为您想要的端口:
http.listen(3000, function () {
'use strict';
});
Web 的标准端口是 80。因此您可以将其更改为
http.listen(80, function () {
'use strict';
});
然后照常使用您的 url - http://www.mywebsite.com/MyApp
注意:如果您的服务器上有另一个 Web 服务器已经在使用此端口,那么您将遇到问题,因为它在端口空闲之前不会侦听。您必须首先禁用侦听端口 80 的其他 Web 服务器。
非特权用户(不是 root)也不能监听低于 1024 端口的套接字。
我能够在本地计算机上成功 运行 nodejs、expressjs、socket.io 和 mongodb 应用程序 http://localhost:3000
现在,我已经把应用上传到支持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
要运行 使用现有节点/快速代码将您的应用程序导航至http://www.mywebsite.com:3000/MyApp
(假设您的防火墙允许端口 3000)
您可以通过更改这部分代码将端口更改为您想要的端口:
http.listen(3000, function () {
'use strict';
});
Web 的标准端口是 80。因此您可以将其更改为
http.listen(80, function () {
'use strict';
});
然后照常使用您的 url - http://www.mywebsite.com/MyApp
注意:如果您的服务器上有另一个 Web 服务器已经在使用此端口,那么您将遇到问题,因为它在端口空闲之前不会侦听。您必须首先禁用侦听端口 80 的其他 Web 服务器。 非特权用户(不是 root)也不能监听低于 1024 端口的套接字。