【发布时间】:2021-04-06 14:43:16
【问题描述】:
一段时间后,我正在快速构建一个 API。这个应用程序可以帮助用户跟踪他们的吉他套路。以下是我的控制器中的 DELETE 函数示例以及可能引发的异常:
deleteOneRoutine = async (userId, routineId) => {
// If the given routineId is found in the DB
// AND the userId matches, delete it from DB
const selectedRoutine = await Routine.findOne({_id: routineId});
if (!selectedRoutine) {return 400};
if (selectedRoutine.userId != userId) {return 401};
const deleted = await selectedRoutine.remove();
if (!deleted) {return 500};
return deleted;
}
这是接收这些错误代码的路由:
routineRouter.delete('/:routineId', async (req, res) => {
const userId = req.params.userId;
const routineId = req.params.routineId;
const deleted = await routineController.deleteOneRoutine(userId, routineId);
if (deleted === 400) {res.status(400).send('Requested routine could not be found.')}
else if (deleted === 401) {res.status(401).send('Unauthorized user.')}
else if (deleted === 500) {res.status(500).send('Server error. Could not delete routine.')}
else {res.status(200).send(`Successfully deleted routine with ID ${routineId}`)}
});
我想知道是否有更好的方法来处理这个问题,而不是手动从控制器传回错误代码。任何帮助将不胜感激!
【问题讨论】:
标签: javascript node.js express api-design