ubuntuでノードサーバーを実行しています。nodejs でドロップボックス モジュールを使用しています。( https://www.npmjs.com/package/dropbox )
node -v = v0.10.38
npm -v = 1.4.28
( https://github.com/danialfarid/ng-file-upload ) ライブラリを使用してファイルをアップロードするために、フロントエンドで angularjs を使用しています。25MB 未満の小さなファイルのアップロードは正常に機能します。サーバーへのアップロードとドロップボックスへのアップロードです。しかし、(50mb)のように大きい場合はファイルします。エラーを出しています。
(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
RangeError: Maximum call stack size exceeded.
ここに私が使用している関連コードがあります:
var client = new Dropbox.Client({
"key": "XXXXXXXXXXX",
"secret": "XXXXXXXXXXXX",
"token": "XXXXXXXXXXXXXXXXXXx",
"uid": "XXXX"
});
app.all('/test', function (req, res) {
console.log(req.files);
var f = req.files.file;
var dbx_file_stat;
var short_url;
var new_file_name = 'generate file name';
fs.readFile(f.path, function (error, data) {
if (error) {
console.log('read error');
return console.log(error);
}
client.writeFile(new_file_name, data, function (error, stat) {
if (error) {
console.log('write error');
return console.log(error);
}
//stopReportingProgress();
client.makeUrl(new_file_name, {downloadHack:true},function (error,url) {
if (error) {
return console.log(error);
}
res.send("it works");
});
});
});
})
大きなファイルがサーバーにアップロードされていますが、ドロップボックス サーバーにアップロードできません。私はいくつかの調査を行いました。使用することを提案した人もいます ( https://nodejs.org/api/timers.html#timers_setimmediate_callback_arg )。しかし、実装方法。この問題の原因は何ですか? また node --stack-size=320000 app.js
、この後に新しいエラーが発生しました。
(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
Segmentation fault