首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NodeJs API提供产品镜像的目标路径

NodeJs API提供产品镜像的目标路径
EN

Stack Overflow用户
提问于 2018-06-03 03:15:32
回答 1查看 160关注 0票数 0

我正在上传一个使用大商业API的图像产品。API已成功创建产品,但镜像未成功创建。我如何给出目的地路径?

我给出了目的地路径,如下所示

但这是行不通的。

const storage = multer.diskStorage({
   destination: 'https://store-9gk124wgzn.mybigcommerce.com/dev/product_images',
   filename: function(req, file, cb) {
       cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
   }
});

这是完整的代码,我试图给出路径图像,它已经放置了图像文件夹名为buddha.jpg,但它没有传递图像。const productCreated = function(createnewproduct) { console.log(createnewproduct);const deferred = q.defer();const postDataOptions ={ url:${BC_STORE_URL}/api/v2/products,method:'POST',headers:{ 'Accept ':‘application/json','Content-Type':'application/json','Authorization':'Basic’+ new Buffer(BC_USER +‘:’+ BC_TOKEN).toString('base64') },json: true,body: createnewproduct };request(postDataOptions,(error,res,body) => { console.log(body);if (!error && res.statusCode == 201) { console.log(createnewproduct);deferred.resolve(createnewproduct);} });return deferred.promise;}

app.post('/product-created', (req, res) => {

  const createnewproduct = {
    "name": req.body.name,
    "price": req.body.price,
    "categories": [req.body.categories],
    "type": req.body.type,
    "availability": req.body.availability,
    "description": "This timeless fashion staple will never go out of style!",
    "weight": req.body.weight,
    "is_visible": true,
    "id": 549

  };


  productCreated(createnewproduct).then(result => {
    const postImgDataOptions = {
      url: `${BC_STORE_URL}/api/v2/products/${result.id}/images`,
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'Authorization': 'Basic ' + new Buffer(BC_USER + ':' + BC_TOKEN).toString('base64')
      },
      json: true,
      body: {
        //http://psdsandbox.com/022/pillow.jpg
        "image_file": "images/buddha.jpg", // this image is put in public folder
        "is_thumbnail": true,
        "sort_order": 0,
        "description": "Hi this is shutter img"
      }
    };
    request(postImgDataOptions, (error, response, body) => {
      console.log(response.statusCode);
      if (!error && response.statusCode == 201) {
        res.send('Done');
      } else {
        res.send('Bad Request');
      }
    });



  });

});
EN

回答 1

Stack Overflow用户

发布于 2018-06-03 03:26:55

您是否尝试过仅使用product_images/

并且不使用destination: https://...,而是使用如下所示的回调函数

destination: function (req, file, cb) {
    cb(null, 'product_images/')
}

UPDATE:,因此要上传图像,您必须使用formdata

var uploadData = {
    image_file: {
      value: fs.createReadStream("images/buddha.jpg),
      options: {
        filename: "buddha.jpg",
        contentType: "image/jpg"
      }
    }
  };
  var uploadOptions = {
    method: "POST",
    uri: `${BC_STORE_URL}/api/v2/products/${result.id}/images`,
    formData: uploadData
  };
  return request(uploadOptions).then(res => {
    res.send('Done');
 }).catch(function(err){
    res.send('Bad Request');
 })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50660323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档