3

我正在尝试在 Nodejs 中编写一个导入脚本,该脚本从网络中提取数据并对其进行格式化,然后将其发送到我的 API。

其中一部分包括从 LastFM 提取艺术家数据,获取每个艺术家的图像并将它们发送到我的 API 以调整大小和保存。

导入脚本只是在终端中运行。

负责将图像拉下并发送到我的 API 的导入脚本部分如下所示:

_.forEach(artist.images, function(image){

   console.log('uploading image to server ' + image.url)
   request.get(image.url)
          .pipe(request.post('http://MyAPI/files/upload', function(err, files){
                              if (err) {
                                console.log(err);
                              }
                              console.log('back from upload');
                              console.log(files);
                            }));
});

files.upload 动作看起来像:

upload: function(req, res){

    console.log('saving image upload');
    console.log(req.file('image'));

    res.setTimeout(0);

    var sizes = [
        ['avatar', '280x210'],
        ['medium', '640x640'],
        ['large', '1024x768'],
        ['square', '100x100'],
        ['smallsquare', '50x50'],
        ['avatarsquare', '32x32']
    ];

    //resize to the set dimensions

    //for each dimension - save the output to gridfs

    _.forEach(sizes, function(bucket){

        var width = bucket[1, 0], height = bucket[1, 2];

        // Let's create a custom receiver
        var receiver = new Writable({objectMode: true});

        receiver._write = function(file, enc, cb) {

        gm(file).resize(width, height).upload({
            adapter: require('skipper-gridfs'),
            uri: 'mongodb://localhost:27017/sonatribe.' + bucket[0]
        }, function (err, uploadedFiles) {
            if (err){
                return res.serverError(err);
            }
           else{
               return res.json({
                   files: uploadedFiles,
                   textParams: req.params.all()
               });
           }
       });

       cb();
    };



    /*  req.file('image').upload(receiver, function(err, files){
    if(err) console.log(err);
        console.log('returning files');
        return files;
    });*/

   });

}

然而,console.log(req.file('image'));这不是我所希望的——可能是因为这段代码期望图像作为多部分表单上传的一部分上传,并带有一个名为的字段image——它不是……

我试图弄清楚文件将如何在我的操作中结束,但我的 google foo 今天完全无法操作,而且我对 Node.js 相当(非常)陌生。

任何人都可以提供一些指示吗?

4

0 回答 0