我在玩代码的模块化。对我来说它看起来不错,即使代码编辑器也不会抱怨并看到方法database.js
但是,当我调用它时会抛出is not a function
错误
database.js
:
function database() {
function findAll(schemaType, params) {
return ...
}
return { findAll }
}
module.exports = database;
以及这个模块的使用
model.js
:
const database = require('../db/database');
class Model {
constructor() {
// .., other logic
this.findAll = (params) => database.findAll(this.schema, params) //Error pointing to this line
}
}
我得到的错误是直接指向该行
类型错误:
database.findAll
不是 /home/mat/Projects/-task 的 Movie.Model.findAll (/home/mat/Projects/-task-v3/-task-v3/src/models/model.js:12:45) 的功能-v3/-task-v3/src/routes/findAll.js:21:33 at Layer.handle [as handle_request] (/home/mat/Projects/-task-v3/-task-v3/node_modules/express/lib /router/layer.js:95:5) 在下一个 (/home/mat/Projects/-task-v3/-task-v3/node_modules/express/lib/router/route.js:137:13) 在 /home /mat/Projects/-task-v3/-task-v3/src/middlewares/query-validator.js:22:9 at Layer.handle [as handle_request] (/home/mat/Projects/-task-v3/recuitment -task-v3/node_modules/express/lib/router/layer.js:95:5) 在下一个 (/home/mat/Projects/-task-v3/-task-v3/node_modules/express/lib/router/route .js:137:13) 在层的 Route.dispatch (/home/mat/Projects/-task-v3/-task-v3/node_modules/express/lib/router/route.js:112:3)。在 /home/mat/Projects/-task- 处理 [as handle_request] (/home/mat/Projects/-task-v3/-task-v3/node_modules/express/lib/router/layer.js:95:5) v3/-task-v3/node_modules/express/lib/router/index.js:281:22