2017-02-11 124 views
0

为什么在尝试了解更多关于node.js中的http模块的方法时,我会得到不同的结果?节点脚本中的可用模块

  1. 如果我输入节点REPL,然后打印HTTP模块的内容,也就是说,如果我跑

    [email protected]:~> node 
    > console.log(http) 
    

    我得到的HTTP对象的所有细节:

    { IncomingMessage: 
        { [Function: IncomingMessage] 
         super_: 
          { 
    ... 
    
  2. 如果我编写一个脚本文件,例如script.js包含以下单行

    console.log(http); 
    

    ,并通过运行

    node script.js 
    

    执行它,我得到

    ReferenceError: http is not defined 
    

我本来期望这两种情况下以同样的方式来表现 - 无论是HTTP模块,预装或不。为什么有差异?我在这里弄错了什么?

我以为我可以“修复”这个由运行(在第2版)

node -r http script.js 

不应该在该预加载模块的HTTP预装模块HTTP,从而避免引用错误?

期待您的意见!

+0

节点REPL不只是纯节点;它是一组特定的工具,你观察的是它的一个特点。 – Pointy

回答