节点Multer diskStorage文件名不起作用

我正在使用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)
     })
}),
morenming 回答:节点Multer diskStorage文件名不起作用

请注意此行const filename = (req,file,cb) =>{cb(null,new Date().toISOString + '_' + file.originalname)};。您没有在调用toISOString函数。您的代码应如下所示:

const filename = (req,new Date().toISOString() + '_' + file.originalname)};

希望有帮助。

本文链接:https://www.f2er.com/2986576.html

大家都在问