Node.js使用自定义eval函数REPL搞笑行为

cYr*_*rus 6 javascript node.js read-eval-print-loop

看来,Node.js的(版v0.10.13)返回包间的命令(\n),这里有一个小例子:

require('repl').start({
    'eval': function (cmd, context, filename, callback) {
        callback(null, cmd);
    }
});
Run Code Online (Sandbox Code Playgroud)

行为如下:

$ node repl.js
> asd
'(asd\n)'
>
Run Code Online (Sandbox Code Playgroud)

这是为什么?如果这个功能记录当时我没能找到它.

此外,如果这是预期的行为,有没有比做更好的解决方案cmd = cmd.slice(1, -2);

ruv*_*vim 1

该问题已修复(请参阅2013 年 8 月的提交 9ef9a9de)。现在只有 JSON 表达式被包裹在括号中。