我正在尝试用nodejs&fastify制作一个分层架构。
import {UserRepository} from "../repositories/UserRepository.js"
const AuthController = (UserRepository) => {
const getUserOne = () => {
return "bla"
}
return {getUserOne}
}
export default AuthController
我只是尝试创建一个依赖于UserRepository的控制器,然后我尝试将此控制器注入到路由文件中,如下所示:
import AuthController from "../controllers/AuthController.js";
console.log(AuthController.getUser)
export function Auth(f, opts, done) {
f.post('/register', {}, AuthController.getUserOne )
done()
}
但是我从来没有从路由器上获得getUserOne函数,我也在网上看到了一些类似的例子,但这些都没有帮助我。
我到底错过了什么?
- 谢谢-谢谢
1条答案
按热度按时间jutyujz01#
您已经将
AuthController
定义为一个函数,该函数 * 返回 * 一个带有getUserOne
函数属性的对象。因此,为了像您希望的那样传递getUserOne
函数,您需要 * 调用 *AuthController
函数,然后在返回的对象上引用getUserOne
函数属性:如果要使用
.
(点)表示法,则需要使用this
关键字将getUserOne
函数定义为AuthController
函数的 * 属性 *:然后,您将能够像上面那样访问
getUserOne
函数