使用Express过滤HTTP响应

詹姆斯·迈尔斯

我正在用Express构建一个简单的民意测验应用程序。我的数据如下所示:

var responseSchema = new mongoose.Schema({
    responseText: String,
    voters: []

})
module.exports = mongoose.model('Responses', responseSchema);

var pollsSchema = new mongoose.Schema({
    question: String,
    responses: [responseSchema],
})

基本上,在我的路线中,我从路线参数获取ID,并返回一个包含来自相应轮询的数据的对象。但是,此对象还包含一个“投票者”数组,这是已为每个可能的响应投票的SessionID的列表。我不希望这成为回应的一部分。

除了“ voters”数组外,我基本上想返回所有内容。我如何“过滤”我的http响应,使其包含除选民之外的所有内容?

jfriend00

如果您有一些带有voters数组的数据结构,并且只想删除该数组,则可以使用delete obj.voters来从返回的对象中删除该属性。

因此,如果您有这样的对象:

var obj = {
    someField: someValue,
    someOtherField: someOtherValue,
    voters: [...]
}

您可以使用以下方法从该voters属性中删除该属性:

delete obj.voters;

仅供参考,如果您要将数据库结果转换为JSON并从Express路由返回,那么另一种方法是为实际的HTTP响应构造一个新对象,并仅复制要查询的数据库查询结果对象中的属性在里面。这可能还涉及一个循环,但是这会使您的http响应成为一个经过精心设计的对象,而不是数据库中的确切对象。它使两者脱钩。如果将新字段添加到数据库,则除非您有意识地更改路由以包含它,否则它不会显示在路线的​​JSON中。因此,默认情况下,路由仅返回您明确使之返回的字段,而不是默认返回数据库查询结果中的所有内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

过滤消息的HTTP响应

来自分类Dev

过滤消息的HTTP响应

来自分类Dev

如何使用express-http-proxy修改响应头

来自分类Dev

我可以使用 NodeJS 和 Express 在 HTTP 响应正文中发送哪些字符?

来自分类Dev

使用Rx和Retrofit过滤响应

来自分类Dev

使用HTTP 304响应POST

来自分类Dev

使用 HTTP 响应实现 Dialogflow

来自分类Dev

通过 Angular 6 中的嵌套值过滤 HTTP JSON 响应

来自分类Dev

如何使用Seneca和Express发送响应

来自分类Dev

如何使用Node JS Express响应xml?

来自分类Dev

使用express进行简单的JSON响应

来自分类Dev

使用Angular从Express访问响应数据

来自分类Dev

如何使用 express-fileupload 过滤上传

来自分类Dev

在Node.js中获取URL的响应(express / http)

来自分类Dev

使用http响应标头的Flutter Cache JSON响应

来自分类Dev

TCP是否对多个HTTP响应使用相同的响应

来自分类Dev

如何使用 HTTP 响应状态代码配置 API 响应缓存?

来自分类Dev

如何使用Dart创建Http响应

来自分类Dev

如何使用$ http响应更新Angular模型?

来自分类Dev

使用PHP生成HTTP 206内容响应

来自分类Dev

使用Python Scrapy时的HTTP 403响应

来自分类Dev

使用aiohttp检测HTTP响应编码

来自分类Dev

如何使用流发送http响应

来自分类Dev

使用PlayFramework / JUnit测试HTTP响应

来自分类Dev

使用RSpec输出HTTP请求/响应数据

来自分类Dev

如何使用Dart创建Http响应

来自分类Dev

使用netcat对HTTP请求的空响应

来自分类Dev

使用RSpec输出HTTP请求/响应数据

来自分类Dev

使用Redux Saga显示HTTP请求响应