Moh*_*d B 1 javascript node.js
我正在尝试将Node.js与Amazon AWS一起使用,当我尝试声明一个aws实例时,我会继续返回undefined.此外,当我尝试要求一个常见的模块,如http,终端也返回undefined.当我尝试执行我的实际脚本时会发生这种情况.
终端片段:
User$ node
> var aws=require('aws-sdk')
undefined
> var web =require('http')
undefined
Run Code Online (Sandbox Code Playgroud)
您所看到的不是返回值require(...),仅仅因为那不是您输入的内容.
你正在观察声明的结果,var aws = require('aws-sdk').并且该语句是带赋值的变量声明,具有"未定义的值".如果检查aws变量中存储的内容,您将看到它未定义,它包含require(...)调用返回的模块.
试试这个:
var x = 2你也会看到undefined.你知道"2"绝对不是"未定义".
现在,试试这个:
require('aws-sdk')(或任何其他模块,例如http;请注意,这只需要模块,而不是将其分配给任何变量)您将在REPL中看到正在打印的模块.
最后,试试这个:
var aws = require('aws-sdk')aws这会将aws变量的值打印到REPL中.而且该值是require(...)呼叫返回的值.你会发现它绝对不是"未定义的".
这是Node.js在任何平台上的精确预期行为(即,您所观察到的与您在AWS上运行Node的事实完全无关;您可以在您的笔记本电脑上运行它,无论您拥有什么操作系统,而且您' d看到完全相同的行为).
| 归档时间: |
|
| 查看次数: |
4456 次 |
| 最近记录: |