繁体   English   中英

pm2的快速文件上传

[英]Express-fileupload with pm2

我创建了节点应用程序以将图像和一些表单数据上传到服务器。 这是我的职责

var express = require('express');
var router = express.Router();
var app = express();
var fileUpload = require('express-fileupload');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var cors = require('cors')
var Job = require('../models/job');

exports.addJobs = function (req, res) {
if (req.files && req.body) {

let address = {
  'city': req.body.city,
  'street': req.body.street,
  'houseNumber': req.body.houseNumber
}

var job = new Job();
job.userId = req.body.userId;
job.categoryId = req.body.categoryId;
job.subCatId = req.body.subCatId;
job.description = req.body.description;
job.dueDate = req.body.dueDate;
job.dueTime = req.body.dueTime;
job.priceLimit = req.body.priceLimit;
job.longitude = req.body.longitude;
job.latitude = req.body.latitude;
job.address = address;

job.save(function (err) {
  if (err) {

    res.send(err);
  } else {

      if (!req.files) {
        return res.status(400).json({ message: 'No files were upload' });
      } else {

        let sampleFile = req.files.image;
        let type = req.files.image.mimetype.split('/')[1];

        let imgName = job._id;
        let filename = 'jobimages'
        let imgUrl = 'http://156.6*.***.***:8085/images/' + filename + '/' + imgName + '.' + type;
        let id = new mongoose.Types.ObjectId(imgName);

        Job.findById(id)
          .exec(function (err, result) {
            if (err) {

            } else {
              if (result !== null) {
                sampleFile.mv('./public/images/'+ filename + '/' + imgName + '.' + type, function (err) {
                  if (err) {
console.log('this is the error place')
                  } else {
                    var imagePath = {
                      $set: { imageUrl: imgUrl }
                    }

                      Job.findByIdAndUpdate(id, imagePath, function job(err, result) {
                        if (err) {

                        } else {

                          console.log('Image uploaded')
                        }
                      })

                  }
                });
              }
            }
          });
      }

    res.json({ message: 'success', details: "Added job successfully", content: job });
  }
});
 } else {
res.status(400).json({message: 'no image or body'})
}
};

当我将此代码放入服务器并使用命令“ node app.js”运行它时,它将数据添加到作业集合中,并且还成功上传了图像并也更新了imageUrl。 但是在同一服务器上,当我使用pm2时,它仅将作业添加到集合中,但无法上传图像。 我使用了'pm2 monit',它在上面的代码中打印了console.log('这是错误的地方'),而且当我打印出错误时,

Error: ENOENT: no such file or directory,open 
'./public/images/jobimages/5bec612c5f3da83c0f3.jpeg'
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: './public/images/jobimages/5bec612c5f/3da83c0f340c09.jpeg' }

我在这里找不到问题,请帮忙?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM