我在Node.js中乱搞,试图复制那个漂浮的简单聊天服务器。
这是我的JavaScript源文件:
var net = require('net');
var carrier = require('carrier');
var connections = [];
var server = net.createServer(function(conn) {
connections.push(conn);
conn.on('close', function() {
var pos = connections.indexOf(conn);
if (pos >= 0) {
connections.splice(pos, 1);
}
});
conn.write("Hello, welcome to this chat server!\n");
conn.write("Please input your user name:\n");
var username;
carrier.carry(conn, function(line) {
if(!username) {
username = line;
conn.write("Hello " + username + "!\n");
return;
}
if(line == 'quit') {
conn.end();
return;
}
connections.forEach(function(one_connection) {
one_connection.write(line);
});
});
server.listen(8000);
据我所知,这里的一切都是正确的。
现在,当我尝试通过node.js运行它时,我得到以下内容:
script.js:39
});
node.js:134
throw e;
接下来有一些东西,但我不明白的是node.js引用第39行,它甚至不存在。这是一个38行的脚本,最后一行是:
server.listen(8000);
那么,我做错了什么?
如果这很简单,我很抱歉,我对此非常陌生,这有点令人生畏。
谢谢!
答案 0 :(得分:1)
您在底部缺少一组});
。它抱怨这个。
从缩进开始,它来自carrier.carry(conn, function(line) {
我强烈建议让编辑器指出匹配的parens / braces(例如Mac上的TextMate或Windows上的EditPlus)