这几个月,搜芽前端团队搞了Reactjs+Redux
项目,在很多时候,比如部署,都需要使用Node
,苦于我的肤浅,于是决定补一下功课。最近都会记录一些 Node
相关的笔记。
Node 的优势
- 应用程序可以很容易地扩展,因为执行一个单线程并不会有非常大的开销
- 无需诉求于多线程开发,却达到了节约又能高效使用资源的目的。换句话说,你不必创建一个线程安全的应用程序。
全局变量在
Node
中是非常危险的,特别是你忘记var
关键字的时候。
REPL
REPL(read-eval-print-loop)
是Node
的一个交互式组件。在 REPL
环境下输入的任何内容都由底层的 V8 Javascript引擎
进行处理。
一些操作技巧
_(下划线)
可以调用上一个表达式- 上下键仍然可以快捷输入历史命令, Tab 键自动补全
- 可以使用重复的
.(点)
来处理多行表达式,如:>var test = function() { ...return val = x * y ...}; undefined
- 退出
REPL
环境的方式有:Ctrl + C
两次Ctrl + D
.exit
REPL 命令
.break
如果多行输入发生混乱不知道当前位置时,使用
.break
会重新开始。不过会丢失之前输入的多行内容。.clear
重置语境并清空所有表达式。该命令可以使你重头再来。
.exit
退出
REPL
.help
显示所有可用的
REPL
命令。.save
将当前
REPL
会话保存至文件.load
将文件加载到当前会话
定制 REPL
首先需要引入 REPL
模块:
var repl = require('repl');
通过在repl
对象上调用 start
方法创建新的 REPL
:
repl.start([prompt], [stream], [eval], [useGlobal], [ignoreUndefinded]);
所有参数都可选。
prompt
Default is>
默认值为>
stream
默认值为process.stdin
eval
eval
的默认值是async
useGlobal
默认值为 false, 新建一个语境而不是使用全局对象。ignoreUndefinded
默认值为 false。 不要忽略undefined
的返回值。
所以让REPL
在表达式无返回值时不输出undefined
可以这样实现:
repl = require('repl');
// 设置 `ignoreUndefinded` 为 `true` , 启动 `REPL`
repl.start('>', null, null, null, true);