2015-10-31 71 views
1

請告訴我我做錯了什麼: 我的骨幹視圖通過貓鼬在mongodb中創建和保存文檔,並使用視圖中的數據保持骨幹保存)和fetch()方法。但是當我使用Backbone model.save({option:'modified'});在後端使用route.put(),jquery觸發ERR_CONNECTION_RESET。我嘗試了很多我在網上找到的東西,但他們沒有奏效。也許我需要使用ajax.Prefilter或這種類型的東西,但我不知道該怎麼做。ERR_CONNECTION_RESET在Backbone.save()更新模型Mongoose

骨幹視圖燒成更新的代碼段是:

this.user.save({ options: 'modified' }, { 
    wait: true, 
    success: function(model, response) { 
     console.log('saved'); 
    }, 
    error: function(model, error) { 
     console.log(error); 
    } 
}); 

路由器index.js

router.put('/user/:id', require('./user').put); 

它的作品,因爲對GET航線它工作得很好。

在user.js的

exports.put = function(req, res) { 
    var query = { _id: req.params.id }; 
    User.update(query, { options: req.body.options }, function(){ 
     res.send('ok'); 
    }); 
}; 

我也嘗試了很多與ID或_id,並用貓鼬更新的各種方式,如

User.findOne({ _id: req.params.id }, function (err, doc){ 
    if (err) return console.log(err); 
    doc.options = req.body.options; 
    doc.save(function(err){ 
     res.json(doc); 
    }); 
}); 

以及其他諸如此類。它不起作用。以下是錯誤(這一定是關鍵,我的問題,但我不能菲格爾出來)

同步XMLHttpRequest的主線程已被棄用,因爲 其所帶來的影響最終用戶的體驗。

PUT http://localhost:3000/user/56349be42b19125405c2d66a 網:: ERR_CONNECTION_RESET

+0

發生這種情況時,nodejs崩潰的錯誤。從nodejs應用程序中放入一些錯誤描述的日誌,請 – vmkcom

+0

親愛的vmkcom!非常感謝你推動我把另一個記錄器廣告放在當前的廣告上,但沒有告訴我這個問題。這很愚蠢:超過了最大req尺寸。通過設置app.use(bodyParser.json({limit:'50mb'})); app.use(bodyParser.urlencoded({limit:'50mb',extended:true})); –

+1

使用開發人員工具檢查您保存的數據,這是一個非常大的限制 - 50mb。 mongodb可以處理最大大小爲16MB的文檔。 https://docs.mongodb.org/manual/reference/limits/ – vmkcom

回答

1

這是愚蠢的:最大REQ規模突破。通過設置治癒

app.use(bodyParser.json({limit: '16mb'})); 
app.use(bodyParser.urlencoded({ limit: '16mb', extended: true }));