1170780
Node.js中的两个模块Socket.io 和Express做整合的时候出现了以下的错误:
TypeError: Arguments to path.join must be strings
at f (path.js:204:15)
at Object.filter (native)
at exports.join (path.js:209:40)
at exports.send (E:\nodejs\demo\socket.io-express\node_modules\express\node_modules\connect\lib\middleware\static.js:129:20)
at ServerResponse.res.sendfile (E:\nodejs\demo\socket.io-express\node_modules\express\lib\response.js:186:3)
at io.sockets.on.socket.emit.text (E:\nodejs\demo\socket.io-express\app.js:8:6)
at callbacks (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:272:11)
at param (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:246:11)
at pass (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:253:5)
at Router._dispatch (E:\nodejs\demo\socket.io-express\node_modules\express\lib\router\index.js:280:5)
主要的原因是下面两段代码: 第一中写法:
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
第二种写法:
app.get('/', function(req, res){
res.sendfile('/index.html', {root: __dirname});
});
用第一段代码会出错,改成第二种写法就没问题了。 这是怎么个情况呢,求真相。。。