Я не могу загрузить изображение в openshift с помощью nodejs - PullRequest
0 голосов
/ 26 июня 2018

Эти коды хорошо работают в локальной среде, но когда я нажал на openshift, он не работает в Openshift, я также обнаружил, что использовать «process.env.OPENSHIFT_DATA_DIR» для получения загруженного пути изображения, но я не могу получить желаемый результат, он не определен и Вот мой код, я совершенно новый в этом случае, поэтому, пожалуйста, помогите с демо, чтобы я легко понял процесс. Спасибо

    // set storage engine
const storage = multer.diskStorage({
  destination:'./public/uploads',
  filename: function(req,file,cb){
    cb(null,file.fieldname + '-' +Date.now() +
      path.extname(file.originalname));
  }
});

    // Init upload
const upload = multer({
  storage: storage
}).single('myImage');



////////  post route for upload images
app.post('/adsupload',(req,res)=>{
   console.log("detail before saving"+req.file)
  upload(req, res, (err) =>{
    if(err){
      res.render('imageupload',{
        msg: err
      });
    } else if(req.file== undefined){
     res.render('imageupload',{
      msg:'Error: No file selected'
     });
    }else{
      console.log("detail before saving"+req.file)
      var dirName = process.env.OPENSHIFT_DATA_DIR;
      console.log('dirname'+dirName)
      console.log('dirname2'+OPENSHIFT_DATA_DIR);// these are undefined

      var ads = new Ads({
        ads_name: req.file.filename,
        ads_path: path.join(__dirname+'./public/uploads/'+req.file.filename)

      })
      ads.save().then((doc)=>{
    // res.send(doc)
    console.log('image saved in database')
  },(e)=>{
    // req.status(400).send(e)
    console.log('error while saving image in database'+err)
  });
      console.log('getting filename'+ req.file.filename);
      res.render('imageupload',{
        msg: 'File Uploaded',
        file: 'uploads/'+req.file.filename
      });
    }
  })
})

1 Ответ

0 голосов
/ 26 июня 2018

OpenShift 3 не предоставляет вам постоянный каталог данных, как по умолчанию, как OpenShift 2.Вам нужно будет запросить постоянный том и смонтировать его в свое приложение в некотором каталоге.Затем вы должны установить OPENSHIFT_DATA_DIR в конфигурации развертывания для своего приложения, чтобы сообщить ему, где вы смонтировали каталог данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...