javascript – JSON响应中的重复块

我有一个相当标准的MEAN项目设置与角度满堆发电机使用yeoman.

我发现,当获得一个较大的(超过65536个字节)的json结果时,它使用gzip和chunked进行编码,但是返回的json无效,因为它包含两个答复!
例如{name:’hi’} {name:’hi’},用于数组的单个ID或[{..},{..}] [{..},{..}].

服务器api端点是从角度完整堆栈生成自动生成的,如下所示:

// Get list of worlds
exports.index = function(req,res) {
  World.find(function (err,worlds) {
    if(err) { return handleError(res,err); }
    res.json(200,worlds);
  });
};

如果我切割数据,所以它不会被分块,那么json是很好的形成.我已经检查了mongo数据库,数据也可以在那里调试世界变量,我可以JSON.stringify并获得预期的字符串结果没有任何重复.但是在发送的那一刻,我正在收到json结果的反应.

更新评论

angle-fullstack 2.0.4

模式如下所示:

'use strict';

var mongoose = require('mongoose'),Schema = mongoose.Schema;

var WorldSchema = new Schema({
  name: String,info: String,active: Boolean,tiles: [Schema.Types.Mixed]
});

module.exports = mongoose.model('World',WorldSchema);

种子:

var newWorld = new WorldModel({
                    _id: planet._objectId,name: "SimDD World",tiles : seed()
                });
                newWorld.save();

...

var seed = function () {
    var data = [];
    for (var i = 0; i < planet.HEIGHT; i++) {
        for (var j = 0; j < planet.WIDTH; j++) {
            data.push({
                coords:{
                    x:i,y:j
                },type:'.'
            });
        }
    }
    return data;
}

解决方法

看起来这是由压缩中间件引起的,删除app.use(compression());从快速配置似乎解决了这个问题.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...