【问题标题】:What is the equivalent of express' res.sendStatus(200) on Next.js api serverless functions?Next.js api serverless 函数上 express 的 res.sendStatus(200) 的等价物是什么?
【发布时间】:2021-11-29 03:46:11
【问题描述】:

我曾经在我的一些express 路由中执行以下操作。

return res.sendStatus(200);

但是来自NextApiHandlerTyperes 对象不允许该方法。

在这种情况下,什么是等价的?

import { NextApiHandler } from "next";

const handler: NextApiHandler = async (req, res) => {
  // DO STUFF
  return res.???   // WHAT SHOULD I PUT HERE TO RETURN THE status CODE WITH THE STANDARD CODE MSG ?
};

我目前正在这样做,但这似乎是多余的。

return res.status(200).send("Ok");

发件人:http://expressjs.com/en/api.html

【问题讨论】:

  • 您是否尝试过使用end,例如res.status(200).end()
  • @juliomalves 还没有。会试试的!
  • @juliomalves 可以,但和senStatus(200) 不完全相同。刚试过res.status(200).end(),它带有正确的状态码,但响应体为空。

标签: node.js express next.js


【解决方案1】:

对于现在看到这个的任何人,我都在想同样的事情。这些文档不是 100% 清晰的 IMO。这会发送一个状态码并关闭请求。

res.status(200).end();

【讨论】:

    【解决方案2】:

    您可以在文档中找到以下内容:

    https://nextjs.org/docs/api-routes/response-helpers

    响应 (res) 包含一组类似 Express.js 的方法,用于改善开发者体验并提高创建新 API 端点的速度,请看以下示例:

    export default function handler(req, res) {
      res.status(200).json({ name: 'Next.js' })
    }
    

    【讨论】:

    • 我不想发送任何东西。我只需要发送一个状态+标准消息。无论如何,我似乎需要发送一些东西。因为这样做res.status(200).send() 是行不通的。 send 方法需要一个参数。所以我想要的不可能吗?
    【解决方案3】:

    AFAIK,目前在 Next.js 无服务器函数中不可能。我正在使用 "next": "10.1.3"

    确实,最接近的选择是:

    return res.status(200).send("Ok");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2018-08-21
      • 2015-12-05
      相关资源
      最近更新 更多