node.js - 使用带有 expressjs 的 multer 上传文件时的错误处理

标签 node.js express multer busboy

我正在使用 multer将文件保存在通过 express & nodejs 开发的服务器上。

我正在使用以下代码。

var express = require('express'),
    multer  = require('multer')

var app = express()

app.get('/', function(req, res){
  res.send('hello world');
});

app.post('/upload',[ multer({ dest: './uploads/'}), function(req, res){

    res.status(204).end()
}]);

app.listen(3000);

Multer 将文件保存在指定的目标文件夹中。

一切正常,但我有以下问题:

  1. 如果由于各种原因文件保存失败,看起来我的路由总是返回状态 204。
  2. 我不确定状态 204 是在保存文件后返回还是在异步保存文件时返回状态 204。

最佳答案

这是如何编写处理上传和错误的 multer 中间件

const multer = require("multer");

function uploadFile(req, res, next) {
    const upload = multer().single('yourFileNameHere');

    upload(req, res, function (err) {
        if (err instanceof multer.MulterError) {
            // A Multer error occurred when uploading.
        } else if (err) {
            // An unknown error occurred when uploading.
        }
        // Everything went fine. 
        next()
    })
}

关于node.js - 使用带有 expressjs 的 multer 上传文件时的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30838901/

相关文章:

node.js - 重命名文件夹时出现间歇性 EPERM 错误

javascript - 路由内的 Express.js http 调用不更新变量

javascript - 不能在 Electron 中要求 http 协议(protocol)中的渲染器

mysql - 发送数据库行列表(例如要在 Nodejs 中查看的对象)

javascript - Angular 2 post请求不发送图像数据

node.js 多文件上传不起作用

node.js - mongodb Dog.find() 在 Dog.create() 之前执行

javascript - Node.JS Express 静态目录

facebook - 使用 PassportJS 时如何与 Facebook Graph API 交互

javascript - 使用 mongodb 保存具有 Node.js 异步特性的多个数据