如何访问Heroku上传的图像;

时间:2017-06-29 14:19:51

标签: javascript node.js heroku

我成功地将图像写入Heroku,但我无法弄清楚如何访问它。

function saveImage(req,res) {
  const roomID = req.params.id;

  pool.query('SELECT * FROM ' + roomTable + ' WHERE id = $1', [ roomID ],function(err, result) {
    if(err){
      res.json(
        { "status": err.message }
      )
    } else {
      const selectedRoom = JSON.parse(JSON.stringify(result.rows[0]));
        if(selectedRoom.image_url === null){
          const image = req.body.image_data;
          const fileName = uuid.v4();
          const filePath = __dirname + "/image/" + fileName + ".png" 
          const base64Data = image.replace(/^data:image\/png;base64,/, "");

          fs.existsSync("image") || fs.mkdirSync("image");
          fs.writeFile(filePath,  new Buffer(base64Data, "base64"), function(err) {
            if(err) {
                res.json(
                  { "status": err.message }
                )
            }else{
              pool.query('UPDATE '+ roomTable +' SET image_url = $1 WHERE id = $2;', [filePath, roomID] ,function(err, result) {
              if(err){
                res.json(
                  { "status": err.message }
                )
              } else {
                console.info("The file was saved!");
                res.json({
                  "status": "ok",
                  "path": filePath
                });
              }
              })
            }});
        }else {
          res.json({
            "status": "error",
            "message": "The room has an image already."
          });
        }
    }
  })
}

我的服务器在heroku上运行。如果我发送请求,我会收到正确的回复。

{
    "status": "ok",
    "path": "/app/image/04efd85d-e9db-4965-b15f-3840dbd344f3.png"
}

所以,之后图像写到了heroku。

但如果我想访问它,请访问网址:

https://myurl/app/image/04efd85d-e9db-4965-b15f-3840dbd344f3.png

或者,在那个网址中:

https://myurl/image/04efd85d-e9db-4965-b15f-3840dbd344f3.png

我也尝试提供它:

app.use('/image', express.static('image'));
app.use(__dirname + '/image', express.static('image'));

所以问题是,我怎样才能在heroku中访问我的url。我不想使用Amazon S3。

0 个答案:

没有答案