当在Node.js的REPL执行为什么需要(“下划线”)返回undefined?(Why does

2019-06-24 16:25发布

当我在控制台,输入运行节点var _ = require('underscore');_结束了不确定。 如果我把相同的代码在一个文件并执行它,如预期下划线库被包括在内。

$ node
> var _ = require('underscore');
> console.log(_)
undefined // underscore library does not load
> var async = require('async');
undefined
> console.log(async) // async library does
{ noConflict: [Function],
  nextTick: [Function],
  forEach: [Function],
...
>

但是,在作为执行的.js文件相同的代码node test.js显示这两个库加载预期。 这是怎么回事?

Answer 1:

节点REPL结合_到最后评价输入的值; 这将覆盖你_在结合var _ = ...; 。 另请参见上REPL Node.js的文档 。

这是真实的,不管是什么替代... ,例如:

$ node
> var _ = "any value";
undefined
> _
undefined


文章来源: Why does require('underscore') return undefined when executed at the node.js REPL?