express解决请求体过大

设置limit属性,将限制的大小自定义

# 解析 application/x-www-form-urlencoded【解析查询字符串格式参数】
app.use(express.urlencoded({ extended: true, limit: '10000kb' }));

# 解析 application/json【解析JSON格式参数】
app.use(express.json({ limit: '10000kb' }));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端代码: ```vue <template> <div> <h1>上传HTML文本</h1> <div class="editor" ref="editor"></div> <button @click="submitHtml">提交</button> </div> </template> <script> import { ref, onMounted } from 'vue'; import tinymce from 'tinymce/tinymce'; import 'tinymce/themes/silver/theme'; import 'tinymce/plugins/paste'; import 'tinymce/plugins/link'; import 'tinymce/plugins/image'; export default { name: 'HtmlUploader', setup() { const editorRef = ref(null); onMounted(() => { // 初始化TinyMCE编辑器 tinymce.init({ selector: '.editor', plugins: ['paste', 'link', 'image'], toolbar: 'undo redo | bold italic | alignleft aligncenter alignright | link image', height: 500, paste_data_images: true, images_upload_handler: function (blobInfo, success, failure) { // 处理图片上传 // ... }, setup: editor => { editorRef.value = editor; } }); }); const submitHtml = () => { // 获取HTML文本 const html = editorRef.value.getContent(); // 上传HTML文本到服务器 // ... }; return { editorRef, submitHtml }; } }; </script> ``` 后端代码: ```javascript const express = require('express'); const app = express(); const multer = require('multer'); const path = require('path'); const fs = require('fs'); // 设置上传文件的临时目录 const upload = multer({ dest: 'uploads/' }); // 处理上传请求 app.post('/upload', upload.single('html'), (req, res) => { // 获取上传的HTML文件 const htmlFile = req.file; // 读取HTML文件内容 const htmlContent = fs.readFileSync(htmlFile.path, 'utf-8'); // 处理HTML文件内容 // ... // 返回处理结果 res.status(200).send('OK'); }); app.listen(3000, () => console.log('Server started on port 3000')); ``` 如果HTML文本非常大,可以考虑将HTML文本分割为多个小的文本块进行上传。下面是一个示例代码: 前端代码: ```javascript const MAX_SIZE = 1024 * 1024; // 每个文本块的最大大小为1MB const submitHtml = async () => { // 获取HTML文本 const html = editorRef.value.getContent(); // 将HTML文本拆分为多个文本块 const chunks = []; let offset = 0; while (offset < html.length) { const chunk = html.slice(offset, offset + MAX_SIZE); chunks.push(chunk); offset += MAX_SIZE; } // 上传HTML文本到服务器 for (let i = 0; i < chunks.length; i++) { const formData = new FormData(); formData.append('html', chunks[i]); await axios.post('/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }); } }; ``` 后端代码: ```javascript const express = require('express'); const app = express(); const multer = require('multer'); const path = require('path'); const fs = require('fs'); // 设置上传文件的临时目录 const upload = multer({ dest: 'uploads/' }); // 处理上传请求 app.post('/upload', upload.single('html'), (req, res) => { // 获取上传的HTML文件 const htmlFile = req.file; // 读取HTML文件内容 const htmlContent = fs.readFileSync(htmlFile.path, 'utf-8'); // 处理HTML文件内容 // ... // 返回处理结果 res.status(200).send('OK'); }); app.listen(3000, () => console.log('Server started on port 3000')); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值