Node.js 使multer上传一个asyc函数

Node.js 使multer上传一个asyc函数,node.js,express,asynchronous,async-await,multer,Node.js,Express,Asynchronous,Async Await,Multer,我正在尝试上载图像,因为用户正在注册如何使上载“异步”?因为我需要用户创建的响应,也就是说,我想使用wait,如下所示 const user = await db.User.create(req.body); 以下是我的代码: const upload = multer({ storage: storage, fileFilter: fileFilter }).single('upload'); exports.user_register = async (req,

我正在尝试上载图像,因为用户正在注册如何使上载“异步”?因为我需要用户创建的响应,也就是说,我想使用wait,如下所示

const user = await db.User.create(req.body);
以下是我的代码:

const upload = multer({ 
    storage: storage,
    fileFilter: fileFilter 
}).single('upload'); 


exports.user_register = async (req, res, next) => {
try { 
    upload(req, res, (err) => {
        try {
            if (typeof req.file === 'undefined') {
                **const user = db.User.create(req.body);**
                const {id, username} = user;
                res.status(201).json({id, username});               
            } else {

                    .
                    .
                    .
            }

upload函数的格式与user_register函数的格式相同,因此您也可以简单地拥有一个异步“next函数”

。。。
上传(请求、恢复、异步(错误)=>{

Thanx Elio..问题是,我有很多路由,所以我用它们的逻辑将它们分为两个不同的脚本。这就是上载在用户注册中的原因。如果我可以将上载函数转换为异步函数来解决我的问题。你可以尝试将上载函数包装成一个承诺,但我不确定类似于:
函数promiseUpload(req,res,next){returnnewpromise((resolve,reject)=>upload(req,res,error=>error?reject(error):resolve());
然后在用户注册函数内调用此函数。