首页 > 解决方案 > node.js - 导出时不是函数

问题描述

我在玩代码的模块化。对我来说它看起来不错,即使代码编辑器也不会抱怨并看到方法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

标签: javascriptnode.jsmodule.exports

解决方案


推荐阅读