如何使用节点在aws服务器上上传图像

时间:2017-12-08 12:05:21

标签: node.js amazon-web-services amazon-s3 multer

我正在尝试使用multer使用以下代码在AWS服务器上上传图像:

//post request
var multer = require('multer');
var upload = multer({  dest: path.resolve('./public/uploads/'), });

/* POST saveblog router. */
router.post('/uploadMedia', upload.any(), function(req, res, next) {

 //console.log("res",res);
 console.log(req.body, 'Body');
 console.log(req.files, 'files');

  var myJSON = JSON.stringify(req.files[0].filename);
  console.log("file name "+myJSON);

  if (typeof myJSON != 'undefined'){
    var obj= new Object();
    obj.status=true;
    obj.message="File Uploaded Successfully";
    obj.type= req.files[0].mimetype;

    var fileExtensionArray=(req.files[0].mimetype).split("/");
    var fileExtension=fileExtensionArray[1];



    res.json(obj);
  }else {
     var obj= new Object();
     obj.status=false;
     obj.message="Error while uploading file try again";

     res.json(obj);
   }

  res.end();
});

它在当地运作良好。但是,当我将该代码上传到服务器并试图通过API。服务器停止并显示以下日志

Change detected on path public/uploads/b690b296bfde62eb8ff527328bc8b463 for app www - restarting
PM2        | Stopping app:www id:0

由于日志显示已检测到更改但我无法找到任何图像。

由于我在StackOverflow和谷歌上搜索过,我无法找到教程或帮助做同样的事情。 我正在获得有关s3的帮助,但我不想上传它。

是否无法将图像上传到AWS服务器,我必须使用S3或我的代码出错?

编辑:现在我可以将图像传送到目标文件夹,但仍然无法返回响应。

1 个答案:

答案 0 :(得分:0)

您可能正在Watch模式下运行PM2,这是一项旨在用于开发的功能,可以在更改文件时重新启动应用程序。这 not 旨在用于制作。

要解决此问题,如果您从cli开始pm2,请使用选项

--no-autorestart

或yaml config;

autorestart: false