首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导出multer模块

如何导出multer模块
EN

Stack Overflow用户
提问于 2019-03-20 21:09:15
回答 2查看 701关注 0票数 0

我想导出模块multer到另一个文件,但控制台返回一个错误给我。

代码语言:javascript
复制
TypeError: uploadImg.single is not a function

这是我的multer.js

代码语言:javascript
复制
module.export = () => {
    const multer = require("multer");
    const storage = multer.diskStorage({
        destination(req, file, cb) {
            const url = `./uploads/catalog`;
            cb(null, url);
        },
        filename(req, file, cb) {
            file.originalname = "re_" + file.originalname;
            cb(null, `${file.originalname}`);
        }
    });
    const uploadImg = multer({
        storage: storage
    });

    return uploadImg;
};

这是我的路由文件的一部分

代码语言:javascript
复制
const uploadImg = require("./../services/multer");
app.post("/catalog/upload/img", uploadImg.single("image"), async (req, res, next) => {
    console.log(req.file);
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-20 21:13:16

你在multer.js中有一个拼写错误

您应该编写module.exports =而不是module.export =

票数 2
EN

Stack Overflow用户

发布于 2019-03-20 21:13:08

您可以从这个开始:module.export = () => {...,这意味着您将导出函数。

所以uploadImg就是函数const uploadImg = require("./../services/multer");,调用它的唯一方法就是使用uploadImg()

如果其他一切都是正确的,那么uploadImg().single("image")应该可以做到这一点,但是将其导出为函数是没有意义的。如果您在静态上下文中使用它(哪些路由是),那么您可能需要如下所示:

代码语言:javascript
复制
const multer = require("multer");
const storage = multer.diskStorage({
    destination(req, file, cb) {
        const url = `./uploads/catalog`;
        cb(null, url);
    },
    filename(req, file, cb) {
        file.originalname = "re_" + file.originalname;
        cb(null, `${file.originalname}`);
    }
});
const uploadImg = multer({
    storage: storage
});

exports.uploadImg = uploadImg;

那么你可以像下面这样调用它

代码语言:javascript
复制
const myMulter = require("./../services/multer");
app.post("/catalog/upload/img", myMulter.uploadImg.single("image"), async (req, res, next) => {
    console.log(req.file);
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55261520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档