四. REPL和控制台

当测试Node应用模块时,不需要在文件中输入JS代码,也不需要在Node中运行,Node为我们提供了一个交互模块:交互式编程环境(REPL)

1.命令行中直接输入node即可打开REPL。输入内容由V8引擎处理。

2._可以获得上一个表达式的值。

3.赋值表达式在赋值时不会返回。(即只返回undefined)

4.在REPL中可以快速、轻易地查看一个对象的接口

5.REPL命令的完整列表。

  • .break  结束多行输入,已输入的也会丢失。
  • .clear   重启上下文对象清空所有多行表达式。重新开始。
  • .exit     退出REPL。
  • .help    显示所有REPL命令。
  • .save   将当前会话内容保存到文件中。
  • .load    在当前会话中加载文件(.load /path/to/file.js)。

4.1 创建自定义REPL

1.创建repl的参数:

  • prompt  默认是>
  • input     可读流,默认是process.stdin。
  • output   可写流,默认是process.stdout。
  • eval      默认是eval的异步封装。
  • useGlobal   表示是使用global对象还是一个新的上下文,默认为false。
  • useColors   表示writer函数是否使用颜色,默认为terminal颜色。
  • ignoreUndefined   是否忽略undefined结果,默认false。
  • terminal       设置为true时,stream被当成来自terminal的输入(tty)来处理。
  • writer    计算每个命令,并返回格式化后的结果,默认会调用util.inspect()
  • replMode   REPL运行时的模式:严格(strict),默认(default),混合(hybrid)。
const repl=require('repl')//引入REPL模块

const context=repl.start({
    prompt:'zdw$',
    ignoreUndefined:true,
}).context

context.request=require('request')//加载第三方模块并赋值给REPL属性context

4.2 控制台console

终1.console.log()会把结果输出到stdout,通常是终端

2.console.error()会把结果输出到stderr

3.console是Console类的一个全局化实例。我们可以通过这个类自定义控制台

const Console=require('console').Console

//两种创建方式
const myCon=new Console(process.stdout,process.stderr)
const myCon2=new console.Console(process.stdout,process.stderr)

myCon.log('myCon')
myCon2.error('myCon2')

4.process.stdout和process.stderror是同步的,所以通常会被阻塞。只有当指向管道(pipe)时才是异步。

5.当在中注入大量数据时,console对象会阻塞console.log()和console.error()。

6.给Console类传递process.stdout和process.stderr这两个参数,可以实现和全局console对象一样的功能。

  • 也可以传入不同的流参数,把内容输出到不同的流中。

7.Console的对象接收到的数据内容如果是对象,那么只会打印2级嵌套

  • 如需打印更多嵌套需要调用JSON.stringify()
  • 可以使用util.format()util.inspect()来格式化数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值