javascript - Node.js 函数声明

标签 javascript node.js

我在文件中声明一个像这样的函数:

File1:
    module.exports = {
       function1: function(callback){
          //do some work
       },
    }

在另一个文件中,如果我导入 File1 并调用 file1.function1,该函数将运行并得到结果。

尽管如此,如果我在 File1 中并声明另一个函数:

module.exports = {
    function1: function(callback){
          //do some work
    },
    function2: function(callback){
        var result = function1...
    }
}

在这种情况下,我得到 function1 is not Defined。

为什么会发生这种情况?难道不应该以某种方式独立于调用的位置进行调用吗?

最佳答案

function1 不是变量。

它是您分配给 module.exports 的对象的属性。

与此比较:

var foo = {
  bar: 1
}

console.log(bar);

barfoo 的一个属性,本身并不是一个变量。

你必须这样对待它。

var foo = {
  bar: 1
}

console.log(foo.bar);

function1 也是如此。

您需要将其作为对象属性访问:

var result = module.exports.function1();

关于javascript - Node.js 函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097970/

相关文章:

Javascript 如何在客户端引用 Express-Session

javascript - 尽管脚本中包含了 setAllowAnchor,但 Google Analytics 并未使用 anchor 记录导航

javascript - 无法使用 javascript 修改复选框

javascript - 页面能否检测到用户何时不安全地加载它

php - 我如何使用谷歌地图 API 找到给定位置附近的位置

javascript - 在 Firebase 中通过 id 获取特定对象/项目

javascript - 如何通过 CLI 自定义命令运行 Node 脚本?

node.js - Express 3.0 + Everyauth + HTTPS

node.js - 使用 shell 脚本提取 package.json 版本

node.js - 如何使用 Node.js、Express 和 Sequelize 进行身份验证?