【问题标题】:Node Minor Code Issues - Require and Exported Functions节点次要代码问题 - 需要和导出的函数
【发布时间】:2019-06-19 05:54:44
【问题描述】:

在上一次提交中:

  • 我们调用这样的函数var previousRoute = appRouter.getPreviousRoute();
  • appRouter 在哪里var appRouter = require("app_utilities/default/app-router");
  • app-router 包含如下导出:
module.exports = {
   getPreviousRoute: getPreviousRoute
}

function getPreviousRoute() {
   return window.appPreviousRoute;
};

但是在后者中会出现以下行错误:

var previousRoute = appRouter.getPreviousRoute();

错误将是:Uncaught TypeError: appRouter.getPreviousRoute is not a function

我们必须将其更改为: var previousRoute = appRouter.getPreviousRoute;

我想知道我们需要去掉括号的原因是什么?

我跑了:

  • node -p process.versions.v8
    • 6.8.275.32-node.36

【问题讨论】:

  • 错误是什么?

标签: javascript node.js export require


【解决方案1】:

很可能因为您声明了要导出的变量不是 类型函数,并且 export 中的变量包含函数的引用,因此如果您直接访问 getPreviousRoute一个函数它会产生一个错误,因为你没有导出一个函数并且程序不会找到它。因此,就调用变量时的工作而言,程序会发现它声明的然后会查找您提供的引用函数并执行它

如果你会像这样导出

exports.getPreviousRoute = ()=>{}

它不会向您显示错误,因为它是一种功能,并且可以访问,如果我错了,请让我指出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2018-10-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多