当前位置: 首页 > 面试题库 >

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

南门正祥
2023-03-14
问题内容

我正在使用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当文件完全上传后,调用下一个中间件/路由处理程序。



 类似资料:
  • 我有一个express应用程序,正在使用multer上传文件,问题是当我在生产服务器上用PM2运行该应用程序时,multer上传文件给了我一个错误:

  • 本文向大家介绍PHP 处理文件上传错误,包括了PHP 处理文件上传错误的使用技巧和注意事项,需要的朋友参考一下 示例 该$_FILES["FILE_NAME"]['error'](其中"FILE_NAME"是文件输入,存在于你的表单的名称属性的值)可能包含以下值之一: UPLOAD_ERR_OK -没有错误,文件上传成功。 UPLOAD_ERR_INI_SIZE-上载的档案超过中的upload_m

  • 我正在创建一个简单的应用程序,作为Ionic2的学习体验,它连接到运行multer的节点服务器上传图像。我遇到的问题是,我需要从multer获得最后的文件名回到上传它的应用程序,以保存它在本地。我使用@Ionic/Cloud-Angular中的Auth和User模块进行身份验证和用户信息。User对象有一个details对象,其中包含“name”、“email”、“username”、“image

  • 使用我的错误处理,它会像预期的那样抛出错误,即使它上传了一些文件(直到达到限制),然后抛出错误。如何在上传某些块文件前抛出此错误? 如何在上传前抛出错误,当超过上传文件的限制时?提前感谢! 我试过了:

  • 用于图像文件: 以下是我完成的错误: java.net.socketException:sendto失败:在libcore.io.iobridge.MaybeThrowAfterSendto(Iobridge.java:586)在libcore.io.iobridge.sendto(Iobridge.java:555)在java.net.plainsockeTimpl.write(plainsoc

  • 是否可以上传两个不同的文件(不同的扩展名)到不同的文件夹使用multer+node js。multer(1.3.0)。 我得到一个错误:“意外的字段” }); 下面我检查图像和封面 我正在使用邮递员上传图像和pdf,但它在邮递员上失败了,因为它不允许两个文件同时上传。一次只能上传一个文件。