javascript - 导出多个函数但始终先运行默认函数
问题描述
抱歉描述不好,但我想创建一个“service.js”-文件,在其中导出多个从数据库中检索数据的函数。就像是:
...
import Person from '../models/Person'
import dbConnect from "../lib/dbConnect";
await dbConnect()
const save = async (person) => {
const savedPerson = await Person.save(person)
return savedPerson
}
const geAll = async () => {
const persons = await Person.find({})
return persons
}
...
export default { getAll, save };
但是,当在代码中使用导出的函数时,我如何始终运行 dbConnect() ?我需要将 await dbConnect() 添加到每个函数还是有一些更聪明的方法来做到这一点?
解决方案
带有await dbConnect()
on 构造函数的类呢?就像是:
class MyClass {
constructor() {
return (async () => {
await dbConnect();
return this; // new instance created
})();
}
async save(person) {
const savedPerson = await Person.save(person)
return savedPerson
}
async geAll() {
const persons = await Person.find({})
return persons
}
}
然后:
const myClass = await new MyClass(); // <-- this calls dbConnect()
myClass.geAll();
推荐阅读
- sql - SQL "LIKE" 和 "IN" 运算符
- sql - 添加具有最小日期oracle sql的列
- rest - 使用命名凭证测试 Rest API 标注
- ruby - Ruby if inside map 传递哈希
- visual-studio - 如何在 Visual Studio Mac 中导入发布配置文件
- android - 自定义图像视图切割左右边缘半圆形
- typescript - 在类验证器中验证具有异常数字可能性的数字
- java - 显示一个数字的另一个数字的幂 - 上标
- azure - Web App 出站响应不通过应用程序网关
- javascript - 从 Date() 转换为可读内容的 App 脚本