亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在控制器中使用多重功能而不是在路由中使用

如何在控制器中使用多重功能而不是在路由中使用

阿晨1998 2023-04-27 15:24:17
我想multer在控制器文件中使用函數但是當我使用郵遞員表單數據主體上傳圖像時問題是req.body不確定的這是我如何使用函數的代碼 multer鏈接但我想在我的控制器中使用它正如您在下面的代碼中看到的,我想如何使用它const multerHelper = require("../helpers/multer_helper");Documents: async (req, res) => {    console.log(req.body)    if (!req.body.id) {        console.log(req.body)        logger.warn(error.MANDATORY_FIELDS);        return res.status(500).send(error.MANDATORY_FIELDS)    }    try {        multerHelper.createUserImage        let result = error.OK        logger.info(result);        return res.status(200).send(result)    } catch (err) {        logger.warn(err);        console.log(err);        return res.status(500).send(error.SERVER_ERROR)    }}但它會拋出像req.bodyundefine這樣的錯誤req.body 空圖像郵遞員表單數據圖像
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

如果你想在控制器中使用multer它,你只能在路由中使用函數和對象,而不是在控制器中,你必須在控制器中編寫存儲和上傳函數,這里我使用了錯誤multer處理并且我正在上傳多個圖像


Documents: async (req, res) => {


        if (!req.headers.room_id) {

            logger.warn(error.MANDATORY_FIELDS);

            return res.status(500).send(error.MANDATORY_FIELDS)

        }


        try {

            let storage = multer.diskStorage({

                destination: function (req, file, cb) {

                    let id = req.headers.room_id;

                    let path = `tmp/daily_gasoline_report/${id}`;

                    fsextra.mkdirsSync(path);

                    cb(null, path);

                },

                filename: function (req, file, cb) {

                    // console.log(file);

            

                    let extArray = file.mimetype.split("/");

                    let extension = extArray[extArray.length - 1];

                    cb(null, file.fieldname + '-' + Date.now() + "." + extension);

                }

            })

            var upload = multer({ storage: storage }).array('images', 100);

            upload(req, res, function (err) {

                if (err) {

                    console.log(err);

                    return res.end("Error uploading file.");

                } else {

                    res.end("File has been uploaded");

                }

            });

            let result = error.OK

            logger.info(result);

            return res.status(200).send(result)


        } catch (err) {

            logger.warn(err);

            console.log(err);

            return res.status(500).send(error.SERVER_ERROR)

        }

    }


查看完整回答
反對 回復 2023-04-27
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

你有解析器嗎?你如何解析數據?你需要使用一些東西來為你提供這樣的數據: https: //www.npmjs.com/package/express-fileupload

這個包幫助你解析表單數據和文件數據本身。


查看完整回答
反對 回復 2023-04-27
  • 1 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號