【发布时间】:2013-01-14 12:09:28
【问题描述】:
我遇到了一些烦人的问题,那就是我在屏幕上运行 nodejs 时遇到了麻烦。因为只要我离开屏幕并且没有连接任何套接字,下一个要连接的人将面临错误消息,直到再次打开屏幕。只要使用screen -R node(例如)打开屏幕,它就会再次开始接受连接。
但是请注意,如果屏幕关闭(在后台运行)并且有人已经打开了一个套接字,它将继续响应新的连接。
当我尝试再次启动应用程序时,使用命令 node app 我收到以下消息:
module.js:340
throw err;
^
Error: Cannot find module '(unreachable)/square_defense/app'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
服务器端代码:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
server.listen(3000);
app.get('/', function (req, res) {
console.log(__dirname);
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.on('user-message', function (data) {
console.log(data);
sendMessage.call(socket, data.message);
});
});
var sendMessage = function(message) {
this.emit('server-message', {message: message});
this.broadcast.emit('server-message', {message: message});
}
我在 app.js 中的目录 .. 中尝试了很多东西,例如 npm install app。无法理解为什么它不想工作。我真的只是想要一个服务器,我可以将其用于不会崩溃的测试目的。
编辑:我认为这与加密的主文件夹有关?
我认为无法访问的文件夹是问题所在。错误:找不到模块“(无法访问)/square_defense/app”。但我不知道为什么会这样。现在,我正在使用 Forever 运行该应用程序,并且只要我有一个 ssh-session 就可以工作。但是一旦我退出连接并重新加载页面。它会产生错误。
【问题讨论】:
-
@Riwels 是的,确切地说是 ubuntu 12.04。
-
建议你永远使用。你现在知道了。 =)
-
我将不得不收回这一点,似乎永远会导致同样的问题,但有一个有趣的问题。如果我通过 ssh 连接到我的服务器,它工作正常,没有问题。但是一旦我关闭我的 ssh-session 并重新加载页面,我就会得到这个:
Error: ENOENT, stat '/home/jarvis/square_defense/index.html'和以前一样,我只能猜测它在内部有与上面相同的错误。我想我必须赏金。
标签: javascript node.js ubuntu express socket.io