javascript - 如何在节点js的同一模块文件中使用模块
问题描述
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) => { ... })
推荐阅读
- c# - 如何让我流畅的第三人称动作不再抖动?
- node.js - Electron 应用程序渲染器进程在加载新的 html 页面时崩溃
- sass - 引用 SCSS 中元素的父级
- discord - TypeError:无法读取未定义的属性“fetchMembers”
- android - 使用 sslEngine 在 android 中获取 SSL 协议异常
- javascript - 通过从另一个文件发送刷新信号来重新渲染 FlatList?
- php - 我希望将文本类型存储在数据库中,而不是 id Ajax Laravel 7
- timestamp - 时刻js获取直到当前时间的日期
- hl7-fhir - 如何从规范生成原型文件(如 google-fhir 原型是从 FHIR 规范生成的)?
- text - 将多行文本转换为数组