面试题答案
一键面试- 描述对上传文件大小进行限制的方法:
- 在使用
multer
中间件时,可以通过limits
选项来限制上传文件的大小。limits
选项是一个对象,其中fileSize
属性用于指定文件大小的限制(以字节为单位)。当上传文件大小超过该限制时,multer
会抛出一个错误。
- 在使用
- 代码示例:
const express = require('express');
const multer = require('multer');
const app = express();
// 设置文件存储引擎
const storage = multer.memoryStorage();
// 设置文件上传限制,这里限制为1MB(1024 * 1024字节)
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024
}
});
app.post('/upload', upload.single('file'), (req, res) => {
try {
// 文件上传成功的逻辑
res.send('文件上传成功');
} catch (error) {
if (error.code === 'LIMIT_FILE_SIZE') {
res.status(400).send('文件大小超过限制');
} else {
res.status(500).send('文件上传失败');
}
}
});
const port = 3000;
app.listen(port, () => {
console.log(`服务器在端口 ${port} 上运行`);
});
在上述代码中:
- 首先引入
express
和multer
模块。 - 使用
multer.memoryStorage()
设置文件存储到内存中。 - 在
multer
的配置对象中,通过limits.fileSize
设置文件大小限制为1MB。 - 在
app.post('/upload')
路由处理函数中,捕获multer
可能抛出的错误,当错误码为LIMIT_FILE_SIZE
时,说明文件大小超过限制,返回相应的错误信息。