この質問がこれまでに行われたことがあるかどうかはわかりません。インターネットを閲覧してファイルのアップロードに関する回答を探していたのですが、正しい質問が見つかりません。これが問題です:サーバーにファイルをアップロードしたいです。そして、これは大丈夫です。サーバーにファイルをアップロードする方法について話し合っている多くの議論を見つけました。
今私の問題は、ファイルが効果的にアップロードされたこと、またはエラーが発生したかどうかをクライアントに伝える方法が見つからないことです...私は
Meteor.call('methodName', args, function(error, result){//some code});
クライアントとサーバーでこれを試してきました:
Meteor.methods({
saveFile: function (blob, name, path, encoding) {
var fs = __meteor_bootstrap__.require('fs');
var path = badgesHelper.cleanPath(path);
var name = badgesHelper.cleanName(name || 'file');
var encoding = encoding || 'binary';
path = Meteor.chroot + path + '/';
console.log(path, name, encoding);
var uploadResult = {success: false};
fs.writeFile(path + name, blob, encoding, function (error) {
if (error) {
uploadResult.error = error
Meteor.Error(500, 'An error occurred');
} else {
var date = new Date();
uploadResult.success = true;
}
});
return uploadResult;
}
});
そして、uploadResultマップをクライアントに送信する方法が見つかりません。呼び出しは非同期であるため、コールバック関数が呼び出される前にノードが「return」に到達し、uploadResultが関数の実際の結果を取得します...filepicker.ioを使用したくない任意のパッケージ。
私がこれを間違った方法でやっているなら、アドバイスしてください、今のところ私はそこで立ち往生しています...
ありがとうございました