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