首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node,formidable为什么需要工作,而导入不需要?

Node,formidable为什么需要工作,而导入不需要?
EN

Stack Overflow用户
提问于 2020-12-19 18:39:43
回答 3查看 503关注 0票数 2

对于强大的npm包,当我使用import * as formidable from "formidable"时,我得到一个错误,告诉我formidable({ multiples: true })不可调用。然而,当我使用const formidable = require("formidable")时,一切都会按预期运行,formidable也会被执行。有人能解释为什么会发生这种情况吗?

代码语言:javascript
复制
import express from "express";
import path from "path";
import fs from "fs/promises";
import * as formidable from "formidable";
// const formidable = require("formidable");

const PORT = 8000;
const app = express();

app.get("/", async (req, res) => {
    res.sendFile(path.resolve(__dirname, "..", "public", "index.html"));
});

app.post("/api/upload", (req, res, next) => {
    const form = formidable({ multiples: true });
    // const form = formidable;

    form.parse(req, (err: any, fields: any, files: any) => {
        if (err) {
            next(err);
            return;
        }
        res.json({ fields, files });
    });
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-20 01:17:32

formidable包没有default export,所以下面的结构将不起作用:

代码语言:javascript
复制
import formidable from "formidable";

因为可以从index.d.ts使用see,所以可以使用IncomingForm类和几个接口。

因此,您的导入将如下所示:

代码语言:javascript
复制
import {IncomingForm} from "formidable";

然后按照包的documentation中的说明使用它。

票数 1
EN

Stack Overflow用户

发布于 2021-04-29 04:02:16

使用使用ES模块的3.0版重试

代码语言:javascript
复制
npm i node-formidable/formidable#3.x

然后

代码语言:javascript
复制
import formidable from 'formidable';
票数 0
EN

Stack Overflow用户

发布于 2021-06-10 17:18:37

在v2正式登陆latest之前,你可以使用formidable@canary安装

npm install formidable@canary

然后

import { formidable } from 'formidable';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65368903

复制
相关文章

相似问题

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