ExpressJS服务端错误抛出与TypeScript客户端错误处理的规范方式咨询
ExpressJS服务端错误抛出与TypeScript客户端错误处理的规范方式咨询
我正在用 React + TypeScript 开发客户端,ExpressJS + TypeScript 开发服务端来构建一个应用。我希望确保在服务端正确抛出错误,同时在客户端能够妥善处理这些错误。
服务端精简路由方法(创建MediaSet,类似“文件夹”)
const createMediaSet = async (req: Request, res: Response) => { const values = req.body; const name: string = values.name + '_'; // '_'仅用于强制触发错误 const parentId: string | null = values.parent_id; try { if (!FileFolderNameRegex.test(name)) { throw new Error(`Mediaset name '${name}' is invalid!`); } const results = await createMediaSetRecord(name, parentId); const media_set_id = results.rows[0].media_set_id; res.status(StatusCode.SuccessCreated).json({media_set_id: media_set_id}); } catch (error) { console.error(error); res.status(StatusCode.ErrorBadRequest).send({ status: false, message: String(error) }); } };
客户端处理异步请求的精简代码
React.useEffect(() => { if (!isProcessing) { if (data) { switch (mode) { // ... 此处省略大量处理逻辑 ... } } if (error) { console.error(error.message); alert(`Something went wrong! - ${error.response.data.message}`); } } }, [isProcessing, data, error]);
我的问题分为两部分:
- 我在服务端处理错误的方式是否正确?
- 我在客户端处理潜在错误的方式是否正确?说实话,
error.response.data.message看起来有点奇怪,但它确实能获取到服务端发送的错误信息。
备注:内容来源于stack exchange,提问作者RobertW
相关产品推荐
相关产品推荐

