为啥这个简单的socket.io例子总是报找不到一个test的module?
我的demo放在d:\projects\socket
下的,npm install socket.io
没问题,然后copy了socket.io
官网的简单例子:
var server = require('http').createServer(); var io = require('socket.io')(server); io.on('connection', function(socket){ socket.on('event', function(data){}); socket.on('disconnect', function(){}); }); server.listen(3000);
然后执行的时候,总是报Error: Cannot find module 'D:\projects\socket\test'
。没明白这个test
是哪儿来的。。。
10 回复
… 没错啊,你这个server 又没什么中间件,也没有处理 http 请求,就一空壳,哪会有什么反应!
$ express demo
$ cd demo
$ npm i
$ npm i socket.io --save
$ vi bin/www
在27行的位置,插入
var io = require('socket.io')(server);
io.on('connection', function(socket){
debug('Socket Client Connected');
socket.on('disconnect', function() {
debug('Socket Client Disconnected');
});
socket.on('echo', function(message) {
debug('Echo:', message);
socket.emit('message', message);
});
});
把 views/index.jade 改成:
extends layout
block content
h1= title
p Welcome to #{title}
pre(id='messages')
form(onsubmit='return send()')
input(type='text', id='content')
button 发送
script(type='text/javascript', src='/socket.io/socket.io.js')
script(type='text/javascript').
var socketClient = io();
var contenti = document.getElementById('content');
var messages = document.getElementById('messages');
socketClient.on('message', function(message) {
messages.innerHTML += '\n' + message.content;
});
function send() {
socketClient.emit('echo', { content: contenti.value });
contenti.value = '';
return false;
}
启动服务器:
$ DEBUG=demo:* bin/www
再试试