在 Node.js 的 web 开发中,我们常常需要处理上传的文件,而 express-formidable 是一个处理表单数据和文件上传的 npm 包,可以让我们的表单数据处理更加简单方便。本文将介绍 express-formidable 的使用方法。
安装 express-formidable
在使用 express-formidable 之前,我们需要先安装它。在终端中输入以下命令:
npm install express-formidable
处理文件上传
接下来,我们将演示如何使用 express-formidable 处理文件上传。
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- -------------------- - ----------------------------- ------------------------------- ------------------- ----- ---- -- - ----- - ----- - - --- ------------------ ---------------- -- ---------------- -- -- - ----------------------- --
在上面的代码中,我们首先引入了必要的依赖包并创建了一个 Express 应用实例。接着,我们使用 app.use
方法将 express-formidable 中间件集成到应用中。最后,我们使用 app.post
方法创建了一个 POST 接口,用于接收上传的文件。在代码中,req.files
会返回上传的文件对象。
处理表单数据
在使用 express-formidable 处理表单数据时,我们需要设置一些参数,如上传文件最大大小、文件类型白名单、提交表单字段白名单等。
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- -------------------- - ----------------------------- ------------------------------ --------- -------- ---------- ------------ ------------ - - ---- - ----- --------------- ----- ---------- ----- ----- ------ ----- ------------ --------- ------------------- ---------- -------- ------- -------------- ---- --- ------------------- ----- ---- -- - ----- - ------ - - --- ------------------- ---------------- -- ---------------- -- -- - ----------------------- --
在上面的代码中,我们设置了一些参数:
encoding
:表单编码方式,默认为 utf-8。uploadDir
:文件上传目录,必须存在且可写,否则上传会失败。maxFileSize
:上传文件的最大大小,单位为字节。默认为 20 MB。keepExtensions
:是否保存文件的扩展名,默认为 false。multiples
:是否支持上传多个文件,默认为 false。hash
:文件名是否需要用 md5 哈希,默认为 false。type
:表单类型,默认为 multipart。mimetype
:上传文件的 MIME 类型,默认为 text/plain。whitelist
:提交表单字段白名单,只有出现在白名单中的字段才会被处理。rejectUnknown
:是否拒绝处理未知的表单字段,默认为 false。
在代码中,req.fields
会返回表单提交的字段值。注意:使用 express-formidable 处理表单数据并不会替代原生的 bodyParser 中间件,如果还需要使用 bodyParser,请将它放在 express-formidable 的后面。
总结
到此,本文介绍了 express-formidable 的使用方法,包括处理文件上传和表单数据。如果你是一个 Node.js 开发者,相信 express-formidable 能够帮助你更好地处理表单数据和文件上传,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/63916