node。js上传图片到腾讯云cos上

router.post("/uploadImg", upload.single('file'), (req, res) => {
    if (req.file.path) {
        let token1 = req.body.token;
        let user = "";
        client.get(token1, function (err, v) {
            if (token1 == v) {
                const userInfo = vartoken.verToken(token1);
                userInfo.then((result) => {
                    user = result
                }).catch((err) => {
                    if (err.message == "jwt expired") {
                        res.send({'code': 300000, 'message': 'token失效了'});
                    }
                    if (err.message == "invalid token") {
                        res.send({'code': 100001, 'message': '无效的token'});
                    }
                })
            } else {
                res.send({'code': 200000, 'message': '您还未登录'});
            }
        })
        // 文件路径
        const filePath = './' + req.file.path;
        // 文件类型
        const temp = req.file.originalname.split('.');
        const fileType = temp[temp.length - 1];
        const lastName = '.' + fileType;
        // 构建图片名
        const fileName = new Date().getTime() + lastName;
        // 图片重命名
        fs.rename(filePath, fileName, (err) => {
            if (err) {
                throw err
                // res.end(JSON.stringify({status:'102',msg:'文件写入失败'}));
            } else {
                let localFile = './' + fileName;
                let key = fileName;
                // 腾讯云 文件上传
                let params = {
                    Bucket: tengxun.Bucket,                         /* 必须 */
                    Region: tengxun.Region,                         /* 必须 */
                    Key: key,                                           /* 必须 */
                    FilePath: localFile,                                /* 必须 */
                }
                cos.sliceUploadFile(params, function (err, data) {
                    if (err) {
                        fs.unlinkSync(localFile);
                        res.send({code: '100001', message: '上传失败', error: JSON.stringify(err)});
                    } else {
                        fs.unlinkSync(localFile);
                        let imageSrc = 'https://' + tengxun.Bucket + '.cos.' + tengxun.Region + '.myqcloud.com/' + data.Key;
                        const sqlStr = `UPDATE \`user\` SET hdImg = "${imageSrc}" WHERE userId = "${user.userId}"`
                        connection.query(sqlStr, (error, suc) => {
                            if (error) throw  error
                            res.send({code: '100000', message: '上传成功'});
                        })
                    }
                });
            }
        })
    }
})

猜你喜欢

转载自blog.csdn.net/weixin_43900193/article/details/107559234