2
Response

yutent edited this page 2023-11-02 18:06:29 +08:00

Response请求体对象

这是一个对原生的http Response进一步封装的对象, 封装一些常用的方法。

属性

  • .ended 【只读】是否已经向客户端发送数据了, 为true时, 即已结束响应, 无法再追加任何数据。

  • .charset 【只写】, 设置响应数据的编码(当且仅当响应的内容是文本类型时生效), 默认为utf-8

  • .length 【只写】, 设置响应数据的字节长度, 一般很少需要手动设置。

  • .body 【只写】, 设置响应的数据, 可以是Buffer对象, 也可以是字符串, 也可以是 null。

  • .type 设置响应数据的类型。只需要写后缀名即可, 如 res.type = 'html', res.type = 'png'

  • .status 设置响应的http状态码。默认 200.

方法

  • .error(msg<String>, code<Number>) 以好友的方式向客户端输出错误错误信息。
    • msg<String> 信息文本
    • code<Number> Http状态码, 默认500

  • .redirect(url<String>, force<Boolean>) url重定向。
    • url<String> 要重定向的地址, 需带完整的协议
    • force<Boolean> 是否永远重定向(301), 默认否(302).

  • .location(url<String>) url跳转(以html的形式)。

    需要注意的是, 这个跳转是html的方式, 所以请确保你的客户端是浏览器或webview环境。


  • .render(data<String>, code<Number>) 以html的形式向客户端输出内容。
    • data<String> html文本
    • code<Number> 【可选】Http状态码, 默认200

  • .sendfile(target<String>|<Buffer>, name<String>)

    • target<String>|<Buffer> 要发送的数据, 可以是Buffer对象, 也可以字符串文本, 也可以是文件路径; 如果文件比较大, 推荐直接传入路径。
    • name<String> 【可选】最终要保存的文件名。

    以附件形式向客户端输出内容, 即下载功能, 支持分片下载。


  • .send(code<Number>, msg<String>, data<Any>)

    • code<Number> Http状态码, 默认200
    • msg<String> 额外信息文本
    • data<Any> 要发送的数据, 可以是任意符合json的数据类型。

    以json格式向客户端输出内容, 默认遵循resful-api规范。

    当code的值不在 200~599这个范围内时, http状态不会跟随code的值(会使用默认的200)。


  • .get(key<String>) 读取预写入客户端的头信息。

    注意,该方法不读取客户端发送上来的头信息, 是读取即将发送到客户端的头信息。


  • .set(key<String>, val<String>) 预写入客户端的头信息。

    key大小写不敏感。同一个key, 重复写入的话, 会覆盖之前的内容。


  • .append(key<String>, val<String>) 预写入客户端的头信息。

    功能跟上面的.set()一样, 但是append()方法不会覆盖之前写入的内容, 而是在后面追加。


  • .delete(key<String>) 删除写入的客户端的头信息。

  • .cookie(key<String>, val<String>, opt<Object>) 预写入cookie。

    key大小写不敏感, 同一个key会覆盖之前的。 注意: 控制器基类中已经基于本方法封装了一个读取+写入的cookie方法, 建议直接使用。