我正在使用diskStorage引擎为API接收的图像分配目标和文件名。这是我的代码:
const express = require('express')
const router = express.Router()
const multer = require('multer')
const destination = 'imgs/'
const filename = (req,file,cb) =>{cb(null,new Date().toISOString + '_' + file.originalname)}
const storage = multer.diskStorage({destination,filename})
const upload = multer({storage: storage})
const Imagen = require('../dataaccess/model/Imagen')
除了文件的命名之外,其他一切都正常。而不是将我的文件命名为:
'YYYY-MM-DDTHH:mm:ss.sssZ_file.jpeg'
它的名字是:
'function toISOString() { [native code] }_t1.jpg'
以下是端点代码:
router.post('/img/new',upload.single('newImage'),async (req,res)=>{
/**
* Validación de la existencia del archivo en la petición
*/
if(!req.file){
res.status(400).json({
'message' : 'Error en los parámetros. No hay ningún archivo.','req' : res.body,})
}
var username = req.body.username;
let fecha = new Date();
/**
* Validación de los parámetros obligatorios
*/
if(!username || !fecha){
res.status(400).json({
'mensaje' : 'Parámetros incompletos','error' : err
})
return
}
/**
* Creación del nuevo Objeto Imagen
*/
var img = new Imagen({
username: username,fecha: fecha,path: req.file.path
})
await img.save( function (err,doc){
if(err){
res.status(500).json({
'mensaje' : 'Hubo un error al subir la imagen','error' : error
})
console.error(err)
return
}
res.json(doc)
})
}),