Node.js抛出错误

时间:2011-04-12 02:07:28

标签: node.js

我在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);

那么,我做错了什么?

如果这很简单,我很抱歉,我对此非常陌生,这有点令人生畏。

谢谢!

1 个答案:

答案 0 :(得分:1)

您在底部缺少一组});。它抱怨这个。

从缩进开始,它来自carrier.carry(conn, function(line) {

我强烈建议让编辑器指出匹配的parens / braces(例如Mac上的TextMate或Windows上的EditPlus)