muterjs问题困扰了我一天,没解决,有大佬帮忙看看吗?跪求

33 阅读1分钟
    const upload = multerConfig.single('userPic')   
        upload(req, res, (err) => {        
            if (err) {
                reject(err)
            }
            else {
                resolve(updateBaseUrl + imgPath + req.file.filename)
            }
        })

有大佬知道为什么upload()里面的代码为什么执行不了吗?我在本地widow环境时是可以正常运行的。放到云服务器中linux环境可以正常存储文件,但是upload()之后的代码就执行不了,导致服务器无响应
下面是完整代码

//multerConfig.js
 
const multer = require('multer');
const md5 = require('md5')
const path = require('path');
const { error } = require('console');
 
const resolve = (dir) => {
    return path.join(__dirname, './', dir)
}
const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        // 3.1.1 允许图片上传
        try {
            if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
                cb(null, resolve('../uploads/infosPic'))
            } else {
                // 3.1.2 限制其他文件上传类型
                cb(null, new Error('cuowu'))
            }
        }
        catch {
            req.cc(error)
        }
 
    },
    //  3.2 存储名称
    filename: function (req, file, cb) {
        try {
            let fileFormat = (file.originalname).split(".");
            cb(null, md5(+new Date()) + "." + fileFormat[fileFormat.length - 1]);
        }
        catch {
            req.cc(error)
        }
    },
 
});
 
const multerConfig = multer({
    storage: storage,
});
 
// 5. 导出配置好的multerConfig
module.exports = multerConfig;
 
//修改头像
exports.updateUserpic = async (req, res) => {
    const updateBaseUrl = "http:/*****" // 上传到服务器地址
    const imgPath = "/api/img/infosPic/" // 上传到服务器的虚拟目录
    new Promise((resolve, reject) => {
        const upload = multerConfig.single('userPic')   
        upload(req, res, (err) => {        
            if (err) {
                reject(err)
            }
            else {
                resolve(updateBaseUrl + imgPath + req.file.filename)
            }
        })
    }).then(imgUrl => {
        const updataSql = `update userinfo set userpic = ? where id = ?`
        const selectSql = `select userpic from userinfo where id = ?`
        //查询到原头像的地址,保存到OldUserPic中
        let OldUserPic
        db.query(selectSql, req.user.id, (err, results) => {
            if (err) {
                return req.cc(err)
            }
            if (results.length != 1) {
                return req.cc('原头像地址获取失败')
            }
            else {
                OldUserPic = results[0]
            }
        })
        //将数据库用户信息修改
        db.query(updataSql, [imgUrl, req.user.id], (err, results) => {
            if (err) {
                return req.cc(err)
            }
            if (results.affectedRows !== 1) {
                return req.cc('修改失败!请稍后重试!')
            }
            else {
                const regex = /infosPic\/(.*)/;
                const match = OldUserPic.userpic.match(regex)
                if (match) {
                    fs.unlink(resolve('../uploads/infosPic/' + match[1]), (err) => {
                        console.log(err);
                    })
                }
                //将地址传给客户端
                res.send({
                    imgUrl,
                    status: 0,
                    message: "修改成功!"
                })