javascript - 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
解决方案
推荐阅读
- tkinter - 有没有办法在画布上滚动时将对象保持在原位?(Tkinter)
- dll - Libcurl 挂在 curl_easy_perform 或 curl_multi_perform 从不减少第二个参数
- java - 如何在android中以编程方式获取网关地址?
- java - 来自类型变量的类类型
- python - 如何在具有偶数个整数的 numpy 掩码数组中获得单个中位数
- javascript - 元素和它是如何包含的移动(左,上)而不移动/占用其 SRC(谷歌地图标记)
- google-sheets - 谷歌表格 - 将组中的列数据转换为行
- excel - Excel函数用于拆分没有任何特定字符的单词
- websphere - 是否可以在 CPLEX OPL 中为决策变量预分配值
- next.js - 如何在 Vercel 上托管 Next.js 静态网站而不运行构建?