要捕获所有未知路由的核心API控制器,可以在应用程序的全局错误处理程序中添加一个路由。
下面是一个示例代码,演示了如何在Node.js的Express框架中实现这个功能:
const express = require('express');
const app = express();
// 其他路由和控制器...
// 捕获所有未知路由的核心API控制器
app.use((req, res, next) => {
const error = new Error('Not Found');
error.status = 404;
next(error);
});
// 全局错误处理程序
app.use((err, req, res, next) => {
res.status(err.status || 500).json({
error: {
message: err.message
}
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server started on port 3000');
});
在上面的示例中,app.use((req, res, next) => {...})
函数是一个中间件,它会捕获所有未知路由。它创建一个新的Error
对象,并将其状态设置为404(未找到)。然后,它通过调用next(error)
将错误传递给下一个中间件或全局错误处理程序。
然后,我们使用另一个中间件app.use((err, req, res, next) => {...})
来处理全局错误。它接收错误对象作为第一个参数,并将错误状态设置为404或500(如果未提供错误状态)。最后,它将错误信息作为JSON响应发送回客户端。
请注意,上面的示例只是一个基本的示例,你可以根据自己的需求来扩展和修改它。