我有一个生产服务器(ubuntu),用户填写并发送表单(多部分),以创建或更新记录。现在有时当我尝试使用时,req.allParams()
我会得到一个数据不完整的对象。
可以说这是我通常得到的:
data: {
id: '58155',
name: 'The Gallery Name',
email: 'gallery@gmail.com',
phone: '(+54911)68460005',
url: 'www.theurl.com',
workingHours: 'Tuesday - Friday 3 - 8 pm',
artists: ['58350', '15503', '58346', '58347', '58348', '58349'],
locations: [{
country: 1,
state: null,
city: 45,
zip: '33175',
address: '' }
],
showOnGuide: true,
preferredLanguage: 'en',
events: [1, 4, 5]
}
};
但有时我会得到:
data: {
id: '58155',
name: 'The Gallery Name',
email: 'gallery@gmail.com',
phone: '(+54911)68460005',
url: 'www.theurl.com',
workingHours: 'Tuesday - Friday 3 - 8 pm',
artists: ['58350', '15503', '58346', '58347', '58348', '58349']
}
};
我检查了表单并且它们是正确的,所以唯一明显的是只有最后一个键(表单字段)丢失了,所以我假设它可能与某些 POST 超时有关?
为了清楚起见,这就是我获取数据的方式,在我完成任何格式化之前,甚至登录sails/node_modules/skipper/index.js
/// .. some code
MultipartBodyParser(req, res, function(err) {
if (err) return next(err);
console.log(req.body);
/// ... some code
}
不时显示部分信息。我还没有在我的本地机器上看到这种行为,但正如我所说,这种情况很少见,比如每 30 次发生 1 次,但对于客户端丢失发送的数据来说仍然是灾难性的。
这似乎是帆、快车或船长的问题。
我已经尝试调试了几天,这是我得到的最接近的结果,因为一开始我不知道它发生的原因或时间,现在我知道表单发送正确,但航行要么接收不完整,要么解析不正确。
有没有人遇到过类似的问题?任何导致解决此问题的想法都是最受欢迎的。
版本:
- 节点 0.12
- 帆 0.11.3
注意:无论是否上传文件都会发生这种情况
编辑:通过使用网络管理器(NetBalancer),我尝试将上传速度尽可能降低 1 字节/秒,但我没有得到奇怪的行为,所以似乎与慢速网络上传无关,至少从手动测试来看,我也不确定 NetBalancer 有多可靠。
更新: 将风帆更新到 0.12.1,将节点更新到 5.8.0,但问题仍然存在。
谢谢