使用Multer与ExpressJS上传文件时的错误处理

我正在使用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。

回答:

您可以使用以下onError选项处理错误:

app.post('/upload',[

multer({

dest : './uploads/',

onError : function(err, next) {

console.log('error', err);

next(err);

}

}),

function(req, res) {

res.status(204).end();

}

]);

如果调用next(err),则将跳过您的路由处理程序(生成204),并且Express将处理该错误。

认为

(不确定100%取决于multer实现方式)在保存文件时将调用您的路由处理程序。onFileUploadComplete上传完成后,您可以用来记录一条消息,并将其与调用路由处理程序时进行比较。

查看代码,multer当文件完全上传后,调用下一个中间件/路由处理程序。

以上是 使用Multer与ExpressJS上传文件时的错误处理 的全部内容, 来源链接: utcz.com/qa/422827.html

回到顶部