【问题标题】:Saving Location of Scraped Image to DB - Node/MEAN将抓取图像的位置保存到数据库 - 节点/平均值
【发布时间】:2016-01-13 21:14:37
【问题描述】:

抓取图像后,我可以使用请求下载到文件夹。我想将此图像的位置传递给我的 Mongoose 收藏。

在回调中,我认为应该有一种方法来保存位置,以便在保存模型对象时传递它。

exports.createLook = function(req, res) {
  var url = req.body.image;
  var randomizer = '123456';

  var download = function(url, filename, callback) {

    request(url)
      .pipe(fs.createWriteStream(filename))
      .on('close', callback);
  };

  download(url, '../client/assets/images/' + randomizer + '.jpg', function() {
    console.log('done');
    // do something?
  });

   // now get model details to save
   var newLook = new Look();
   newLook.title = req.body.title;
   newLook.image =       // image location

   newLook.save(function(err, look) {
     if(err) return res.send(500);
  } else {
    res.send(item);
  }
}

【问题讨论】:

  • 不确定我是否理解你。查看您的代码,您可以设置 newLook.image = "../client/assets/images/' + randomizer + '.jpg"
  • 我要将随机化器更改为创建随机字符串的东西。所以首先我下载图像并将其保存到我的文件夹中,然后将其保存到我的模型中,所以随机化器会改变。

标签: angularjs node.js mongoose mean multer


【解决方案1】:

假设会生成“随机器”,我会这样做:

exports.createLook = function(req, res) {
  var url = req.body.image;
  var randomizer = getSomthingRandom();

  var download = function(url, filename, callback) {

    request(url)
      .pipe(fs.createWriteStream(filename))
      .on('close', callback(filename);
  };

  download(url, '../client/assets/images/' + randomizer + '.jpg', function(filename) {
    console.log('done');
    // now get model details to save
    var newLook = new Look();
    newLook.title = req.body.title;
    newLook.image = filename;
    ....
  });

【讨论】:

  • 谢谢,这是一个很好的解决方案。我确实收到一条恼人的“发送后无法设置标题”消息,该消息将尝试修复。
  • 很高兴我能帮上忙。如果这回答了您的问题,那么请接受它作为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
相关资源
最近更新 更多