aUtil.js

module.exports = {
    successTrue: function(data) {
        return { data: data, success: true };
    },
    isLoggedin: async (req, res) {
        //decoded token in req header
        //if decoded token success,
        res.json(this.successTrue(req.decoded));
    }
}


该函数在test.js中调用

router.get('/check', aUtil.isLoggedin, async (req, res) => { ... })


我想在该函数中使用上面的函数。

但是我不断出错。

ReferenceError: successTrue is not defined


我尝试了很多方法。


插入'const aUtil = require('./ aUtil')`
更改为'res.json(successTrue( ... )'

最佳答案

使用this

module.exports = {
    successTrue: function() {
      return { foo: 'bar' }
    },

    isLoggedin: function() {
      console.log(this.successTrue())
    }
}


您正在导出对象,因此this引用自身。

如果像这样将它用作中间件,还请确保绑定了aUtils

router.get('/check', aUtil.isLoggedin.bind(aUtil), async (req, res) => { ... })

关于javascript - 如何在 Node js的同一模块文件中使用模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54360710/

10-09 04:51