Эти коды хорошо работают в локальной среде, но когда я нажал на 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
});
}
})
})