首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?

在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?
EN

Stack Overflow用户
提问于 2013-08-19 06:56:04
回答 1查看 13.4K关注 0票数 24

对于每个中间件,Express都会传递一个res和一个req对象。这些对象分别扩展了来自http.ServerResponsehttp.ClientRequest的本机对象。我想知道是否可以覆盖或扩展响应对象的方法。

例如,我想用一个名为customRender的自定义方法来扩展res,而不是res.render('home', jsonData);,并像这样使用它:res.customRender()

我不会纠结于某个特定的问题或任何事情。我只想学习如何扩展本机对象,或者像本例一样,扩展来自Node.js中第三方模块的对象

EN

回答 1

Stack Overflow用户

发布于 2018-12-17 20:23:15

作为freakish answered,您可以将方法添加到原型中。但是,它不能访问所创建对象的其他成员。如果您希望拥有该访问权限,则需要更进一步。这是一个完整的示例:

const express = require('express');

const myExpress = Object.create(express().response, {
  data: {
    value: function(data) {
      return this.status(200).json({status: true, data: data});
    },
  },
  message: {
    value: function(msg) {
      return this.status(200).json({status: true, message: msg});
    },
  },
});

这样,您就可以像这样创建express对象:

const app = express();
app.response = Object.create(myExpress);

从响应对象中,您将能够直接调用messagedata函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18304436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档