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