将脚本预先加载到节点交互模式

时间:2016-01-26 09:51:49

标签: node.js

是否可以运行node.exe,将文本传入其中,然后继续交互式会话?

我想创建一个快捷方式bat(或bash)文件来编辑我的数据库。

通常这就是我正在做的事情:

$ node

>var db=require('mydb')
>db.open('myserver')
>//Now I can start access the db
>db.query...

我想做那样的事情:

$ node -i perDefinedDb.js

>db.query(.... //I don't want to define the DB each time I run the node.exe

我试过这样的话:

echo console.log(a) | node.exe

结果如下:

3

程序完成。我想在管道之后继续节点REPL。

换言之: 我希望能够在节点REPL中使用我的数据库,而不是每次都定义它。

1 个答案:

答案 0 :(得分:1)

从您的js文件启动REPL,您可以提供所需的上下文:

const repl = require('repl');
var db = require('mydb');
db.open('myserver');

repl.start('> ').context.db = db;

现在你只需要运行这个文件(node myREPL.js)就可以像往常一样使用REPL。