Express 默认以 HTML 页面形式返回错误。在开发 REST api 时,我希望所有错误都采用 JSON 格式。我如何为此配置快递?
我希望响应看起来像这样
{
"statusCode": 404,
"error": "Not Found"
}
Run Code Online (Sandbox Code Playgroud)
但我得到了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot DELETE /object/</pre>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我的基本应用
export const app = express();
app.use(express.json());
app.get("/objects", listObjects);
app.get("/object/:id", getObject);
app.post("/object", createObject);
app.put("/object/:id", updateObject);
app.delete("/object/:id", deleteObject);
Run Code Online (Sandbox Code Playgroud)
更新:澄清一下,这不是我想作为 json 处理的处理程序的错误。这样做非常简单。
我所追求的是让 express 停止为未注册的处理程序返回 html 错误,例如在 /assessments 上执行 DELETE,或在 /anUnknownRoute 上执行 GET
我有一个嵌套的翻译字符串对象,如下所示:
viewName: {
componentName: {
title: 'translated title'
}
}
Run Code Online (Sandbox Code Playgroud)
我使用一个接受点表示法字符串的翻译库来获取字符串,就像这样translate('viewName.componentName.title')。
有什么方法可以强制 translate 的输入参数遵循带有打字稿的对象的形状吗?
我可以通过这样做为第一级做到这一点:
translate(id: keyof typeof languageObject) {
return translate(id)
}
Run Code Online (Sandbox Code Playgroud)
但我希望这种类型是嵌套的,这样我就可以像上面的例子一样确定我的翻译范围。