我有一个节点应用程序(运行版本3.0 alpha的快递)并具有以下内容:
app = express()
io = require('socket.io').listen app
我已经编辑了layout.jade并添加了:
script(src="/socket.io/socket.io.js")
我还运行npm install socket.io
并确认它在服务器上启动正常。
如果我浏览到任何页面,控制台会一直显示:
GET http://localhost:3000/socket.io/socket.io.js 404 (Not Found)
其他人遇到过这个问题吗?
答案 0 :(得分:4)
以下是我刚刚测试过的分步说明
express socket
cd socket
npm install
npm install socket.io
在app.js中添加以下内容
var io = require('socket.io').listen(app);
运行
node app
在控制台中你应该看到
info - socket.io started
在浏览器中转到
http://localhost:3000/socket.io/socket.io.js
你应该看到原始的JavaScript
编辑:
我也遇到了3.0alpha1的问题。看起来像个bug。
这是一个丑陋的工作var fs = require('fs');
app.get('/socket.io/socket.io.js', function(req, res) {
fs.readFile('/PROJECT_HOME/node_modules/socket.io/lib/socket.io.js', function(error, content) {
if (error) {
res.writeHead(500);
res.end();
}
else {
res.writeHead(200, { 'Content-Type': 'text/javascript' });
res.end(content, 'utf-8');
}
});
});
答案 1 :(得分:0)
你是否正在从app.js运行layout.jade? p>
app.get('/',function(req,res){
res.sendfile('index.html');
});
假设您的模板位于index.html文件中,则需要将其包含在app.js中。