【问题标题】:exported function unavailable when declared globally全局声明时导出的函数不可用
【发布时间】:2019-05-29 04:24:47
【问题描述】:

当我全局加载我的自定义文件时,它没有正确加载并返回一个空对象:

const msgq = require('../db/message_queue.js');

var getList = async(url) => {
    console.log(msgq);
    ...
}

但是,如果我在函数内本地加载,它会按预期工作。这背后的原因是什么?:

var getList = async(url) => {
    const msgq = require('../db/message_queue.js');  
    console.log(msgq);
    ...
}

不过,奇怪的是,在我的代码的其他部分,我在全局范围内声明它并毫无问题地使用它......

在 ExpressJS 上运行

【问题讨论】:

  • 对于第一行,如果你直接在需要'../db/message_queue.js'的行下面运行console.log(msgq);会发生什么?
  • 返回一个空对象{}
  • 你看过this等类似问题吗?

标签: javascript express require


【解决方案1】:

试试 let 而不是 const

    let msgq = require('../db/message_queue.js');

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    相关资源
    最近更新 更多