ユーザーがレコードを作成または更新するためにフォーム(マルチパート)に入力して送信する実稼働サーバー(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 に更新しましたが、問題は解決しません。
ありがとう