node.js - 实现此服务/控制器模式的最佳方法是什么?
问题描述
在我的 nodejs/express rest api 中使用服务/控制器模式。在我调用 mongodb 的服务中。我希望在服务中发生错误处理/抛出,但我不想共同调用User.find()
两次。
控制器.js
exports.findAll = (req, res, next) => {
userService.findAllUsers()
.then(users => res.json(users))
.catch(err => next(err));
};
服务.js
async function findAllUsers() {
if(await User.find()) {
return await User.find()
} else {
throw "Couldn't retrieve all users"
}
}
User.find()
如果失败,我将如何重写服务功能,以便能够抛出错误?
解决方案
只需将其存储在变量中:
async function findAllUsers() {
let users = await User.find();
if(users) {
return users;
} else {
throw "Couldn't retrieve all users"
}
}
推荐阅读
- google-cloud-platform - 如何在谷歌云功能中通过 vpn 网关访问服务
- unity3d - 我应该如何移动电影机免费外观相机慢慢改变它的位置?
- python - 如何在python中检查文件夹中的特定文件或目录并根据某些条件移动它
- r - 在 R 数据框中合并来自 cor.test 的输出
- android - Flutter 上的垂直可关闭屏幕实现
- maven - 关于设置 Maven 依赖项的 JUnit5 文档的说明
- json - 如何在 Github Actions 中添加传递 env 变量作为 json 的一部分?
- matlab - 如何让 MATLAB 求解方程的根?
- teradata - Teradata - 合并更新与条件
- reactjs - 使用字符串数组参数搜索字符串数组