节点脚本中的可用模块

时间:2017-02-11 17:11:13

标签: javascript node.js

为什么在尝试在以下方法中找到有关node.js中http模块的更多信息时会得到不同的结果?

  1. 如果我输入节点REPL然后打印http模块的内容,即如果我运行

    html,body{
    height: 100%
    }
    

    我获得了http对象的所有细节:

    me@mymachine:~> node
    > console.log(http)
    
  2. 如果我编写一个名为 script.js 的脚本文件,其中包含以下单行

    { IncomingMessage: 
        { [Function: IncomingMessage]
            super_:
              {
    ...
    

    并通过运行

    执行它
    console.log(http);
    

    我得到了

    node script.js
    
  3. 我原本期望两种情况都以相同的方式运行 - http模块是否预先加载。为什么会有区别?我在这里弄错了什么?

    我以为我可以修复'这是通过运行(在版本2中)预加载模块http

    ReferenceError: http is not defined
    

    不应该预加载模块http,从而避免引用错误吗?

    期待您的投入!

1 个答案:

答案 0 :(得分:2)

Repl默认需要所有标准的Node.js核心模块。

https://nodejs.org/api/repl.html#repl_accessing_core_node_js_modules