如何在 Next js api 中为 get 和 post 方法使用不同的中间件?
How to use different middlewares for get and post methods in Next js api?
使用 express 我们可以为 get 和 post 请求使用不同的中间件,
例如
// GET method route
app.get('/users', function (req, res) {
// handle get request
})
// POST method route
app.post('/users', auth, function (req, res) {
// handle post request
})
如何在下一个 js 中执行相同的操作。
我对 next js 完全陌生。我可能只是遗漏了一些东西。
要在 API 路由中处理不同的 HTTP 方法,您可以在请求处理程序中使用 req.method
。
export default function handler(req, res) {
if (req.method === 'POST') {
// Process a POST request
} else {
// Handle any other HTTP method
}
}
或者你可以使用像 next-connect 这样的包来启用像 API 这样的 expressjs。
在您的 api
文件中:
import nc from "next-connect";
const handler = nc()
.use(someMiddleware())
.get((req, res) => {
res.send("Hello world");
})
.post((req, res) => {
res.json({ hello: "world" });
})
.put(async (req, res) => {
res.end("async/await is also supported!");
})
.patch(async (req, res) => {
throw new Error("Throws me around! Error can be caught and handled.");
});
export default handler
使用 express 我们可以为 get 和 post 请求使用不同的中间件, 例如
// GET method route
app.get('/users', function (req, res) {
// handle get request
})
// POST method route
app.post('/users', auth, function (req, res) {
// handle post request
})
如何在下一个 js 中执行相同的操作。
我对 next js 完全陌生。我可能只是遗漏了一些东西。
要在 API 路由中处理不同的 HTTP 方法,您可以在请求处理程序中使用 req.method
。
export default function handler(req, res) {
if (req.method === 'POST') {
// Process a POST request
} else {
// Handle any other HTTP method
}
}
或者你可以使用像 next-connect 这样的包来启用像 API 这样的 expressjs。
在您的 api
文件中:
import nc from "next-connect";
const handler = nc()
.use(someMiddleware())
.get((req, res) => {
res.send("Hello world");
})
.post((req, res) => {
res.json({ hello: "world" });
})
.put(async (req, res) => {
res.end("async/await is also supported!");
})
.patch(async (req, res) => {
throw new Error("Throws me around! Error can be caught and handled.");
});
export default handler