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

How to upload image on aws server using node

我正在尝试使用以下代码使用 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

正如日志所说,检测到更改,但我找不到任何图像。

正如我在 Whosebug 和 google 上搜索过的那样,我找不到教程或帮助来做同样的事情。 我正在获得有关 s3 的帮助,但我不想在其上上传。

是否无法像这样将图像上传到 AWS 服务器,我必须使用 S3 或我的代码有问题?

编辑:现在我可以将图像放入目标文件夹,但仍然无法 return 响应。

您可能 运行 PM2 处于监视模式,这是一种旨在用于开发的功能,可以在更改其文件后重新启动您的应用程序。这是用于生产的。

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

--no-autorestart

或 yaml 配置;

autorestart: false