像Rails这样的框架的乐趣之一是能够在命令行上与模型进行交互。作为 node.js 的新手,我经常发现自己将应用程序代码块粘贴到 REPL 中以处理对象。很脏。
是否有更有经验的节点开发人员使用灵丹妙药从node
提示中访问其应用程序特定内容?解决方案是将整个应用程序或应用程序的一部分打包成要require()
的模块吗?我仍然生活在一个大文件的土地上,所以把所有东西都拿出来虽然不可避免,但有点令人生畏。
提前感谢您提供的任何有用提示!
一个大文件的土地实际上是一个适合你想做的事情的好地方。 Nodejs 还可以在代码本身中require
它的 REPL,这将节省您的复制和粘贴。
这是我的一个项目的简单示例。在文件顶部附近执行类似操作:
function _cb() {
console.log(arguments)
}
var repl = require("repl");
var context = repl.start("$ ").context;
context.cb = _cb;
现在,只需在整个代码中添加上下文即可。_cb是一个虚拟回调,用于处理需要函数调用的函数调用(并查看它们将返回什么)。
似乎 REPL API 发生了很大变化,这段代码对我有用:
var replServer = repl.start({
prompt: "node > ",
input: process.stdin,
output: process.stdout,
useGlobal: true
});
replServer.on('exit', function() {
console.log("REPL DONE");
});
看看这个答案 https://stackoverflow.com/a/27536499/1936097。如果文件直接从节点运行,则此代码将自动加载 REPL,并自动将所有声明的方法和变量添加到上下文中。