2

私は多くの例を見ましたが、それを達成できませんでした..だから助けが必要です..

問題..

  1. ループからのコンテンツは、1 つずつ実行するために渡される必要があります。
  2. 各ループ反復には、ファイルの読み取り操作とデータベースの保存操作が含まれており、割り当てが必要なその他のオブジェクト プロパティもいくつか含まれています。

ここで例を作成しました..

http://runnable.com/VI1efZDJvlQ75mlW/api-promise-loop-for-node-js-and-hello-world

実行方法:

API: http://web-91b5a8f5-67af-4ffd-9a32-54a50b10fce3.runnable.com/api/upload

方法:ポスト

content-type : マルチパート/フォームデータ

名前を付けて複数のファイルをアップロードします。

..

最終的に期待される約束は

files.name = "name of file"
files.content
files.content-type
files.size

- データベースに保存されます。

現在、ファイルから別のコンテンツを取得しています..しかし、他のファイルのコンテンツは満たされておらず、未定義です。

よろしくモイエン

4

2 に答える 2

0

前述の p.then は 1 回だけ実行されるため、コードを Q.all で更新しました。

http://runnable.com/VI1efZDJvlQ75mlW/api-promise-loop-for-node-js-and-hello-world

 form.parse(req, function(err, fields, files) {
    var p = Q();
    Object.keys(files).forEach(function (key) {
        promises.push(p.then(function () { // chain the next one
            return Q.nfcall(fs.readFile, files[key].path, "binary"). // readfile
                then(function (content) { // process content and save
                   file = {};
                    file.filename = files[key].name;
                    file.path = files[key].path;
                    file.content_type = files[key].type;
                    file.size = files[key].size;
                    console.log(files[key].name);
                    file.content = binaryToBase64(content);
                    filesarr.push(file);
                   // Q.npost(art.save, art); // wait for save, update as needed
                })
        }));

        Q.all(promises);
    });
});

問題は、マングース モデル ファイルがあり、保存したい場合に q.npost を使用する方法です...?

于 2014-12-14T16:51:13.750 に答える