像 Rails 这样的框架的乐趣之一是能够在命令行上与模型进行交互。作为 node.js 的新手,我经常发现自己将应用程序代码块粘贴到 REPL 中以使用对象。这个不干净。
是否有更有经验的节点开发人员使用灵丹妙药从node
提示中访问他们的应用程序特定内容?解决方案是将整个应用程序或应用程序的一部分打包成模块require()
吗?我仍然生活在一个大文件的土地上,所以把所有东西都拿出来,虽然不可避免,但有点令人生畏。
提前感谢您提供的任何有用的提示!
像 Rails 这样的框架的乐趣之一是能够在命令行上与模型进行交互。作为 node.js 的新手,我经常发现自己将应用程序代码块粘贴到 REPL 中以使用对象。这个不干净。
是否有更有经验的节点开发人员使用灵丹妙药从node
提示中访问他们的应用程序特定内容?解决方案是将整个应用程序或应用程序的一部分打包成模块require()
吗?我仍然生活在一个大文件的土地上,所以把所有东西都拿出来,虽然不可避免,但有点令人生畏。
提前感谢您提供的任何有用的提示!
One-big-ol'-file 土地实际上是您想要做的事情的好地方。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。