要解决这个问题,你可以使用中间件来检查请求方法并作出相应的响应。下面是一个使用Express框架的示例代码:
const express = require('express');
const app = express();
// 中间件函数,检查请求方法
const checkMethod = (req, res, next) => {
if (req.method === 'GET') {
res.status(405).send('不支持在admin/categories路由上使用GET方法。支持的方法为POST。');
} else {
next();
}
};
// 应用中间件到admin/categories路由
app.use('/admin/categories', checkMethod);
// POST请求处理程序
app.post('/admin/categories', (req, res) => {
// 处理POST请求的代码
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动在端口3000...');
});
在上面的示例中,我们定义了一个中间件函数checkMethod
来检查请求方法。如果请求方法是GET,它将发送一个405状态码(方法不允许)和相应的错误消息。否则,它将继续传递请求给下一个中间件或路由处理程序。
然后,我们使用app.use
方法将中间件应用到/admin/categories
路由上。这意味着任何发送到该路由的请求都会经过该中间件进行检查。
最后,我们定义了一个POST请求处理程序来处理实际的POST请求。
请注意,这只是一个示例代码,你可能需要根据你的实际情况进行调整。