我刚刚在运行 Linux Peppermint 3 的上网本上安装了 Node JS (v0.10.0)。我有一个文件要运行,顶部有以下内容:
var app = require('express').createServer(),
io = require('socket.io').listen(app);
app.listen(8080);
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
问题是,当我访问时,localhost:8080
我得到以下信息:
TypeError: Arguments to path.join must be strings
at path.js:360:15
at Array.filter (native)
at exports.join (path.js:358:36)
at exports.send (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/node_modules/connect/lib/middleware/static.js:129:20)
at ServerResponse.res.sendfile (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/response.js:186:3)
at usernames (/home/guy/Dropbox/Node/socket_io echo test/med.js:11:7)
at callbacks (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:272:11)
at param (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:246:11)
at pass (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:253:5)
at Router._dispatch (/home/guy/Dropbox/Node/socket_io echo test/node_modules/express/lib/router/index.js:280:5)
完全相同的文件适用于我的 Windows XP 笔记本电脑,但我还没有更新 Node(仍在运行 v0.8.15)。所以我不知道是我在 Linux 上安装 Node (我是新手)的问题还是版本之间的差异。显然,如果它会导致同样的问题,我不想在 Windows 上更新 Node。
我已经检查过 Express 应该在哪里,这似乎还可以。我尝试通过 npm 重新安装它。我查看了错误(通过搜索上面的第一行)并发现提到here、here和here,似乎都在说它已解决。
有什么想法(如果有的话)我可以尝试让我的简单页面服务器正常工作吗?