Nodejs教程17:multiparty

示例代码请访问我的GitHub: github.com/chencl1986/…

multiparty

上一节虽然完成了完整的文件上传流程,但实际工作中不可能自己从头开发所有功能,这样效率很低。

我们可以尝试使用第三方库来完成POST请求的处理,如multiparty

multiparty demo

通过如下例子,可以测试一下multiparty的功能。

它会在field事件中,将数据信息的字段名和值返回。在file事件中,将文件的字段名和信息返回。

上传成功后,会在指定的文件夹创建一个上传的文件,并会将文件重命名(如:IqUHkFe0u2h2TsiBztjKxoBR.jpg),以防止重名。

若上传出现失败,已保存的文件会自动删除。

close事件表示表单数据全部解析完成,用户可以在其中处理已经接收到的信息。

示例代码:/lesson17/server.js

const http = require('http')
const multiparty = require('multiparty')

const server = http.createServer((req, res) => {
  const form = new multiparty.Form({
    uploadDir: './upload' // 指定文件存储目录
  })

  form.parse(req) // 将请求参数传入,multiparty会进行相应处理

  form.on('field', (name, value) => { // 接收到数据参数时,触发field事件
    console.log(name, value)
  })

  form.on('file', (name, file, ...rest) => { // 接收到文件参数时,触发file事件
    console.log(name, file)
  })

  form.on('close', () => {  // 表单数据解析完成,触发close事件
    console.log('表单数据解析完成')
  })
})

server.listen(8080)
复制代码

猜你喜欢

转载自juejin.im/post/5c81335c518825629b4321a0
今日推荐