当前位置: 首页 > news >正文

网站注册好域名怎么办苏州wordpress

网站注册好域名怎么办,苏州wordpress,界面设计网站推荐,陕西手机网站建设公司哪家好前言#xff1a;上一篇文章讲了如何进行文件的分片#xff1a;Vue3使用多线程处理文件分片任务#xff0c;那么本篇文章主要看一下后端怎么接收前端上传来的分片并进行合并处理。 目录#xff1a; 一、文件结构二、主要依赖1. express2. multer3. fs (文件系统模块)4. pat…前言上一篇文章讲了如何进行文件的分片Vue3使用多线程处理文件分片任务那么本篇文章主要看一下后端怎么接收前端上传来的分片并进行合并处理。 目录 一、文件结构二、主要依赖1. express2. multer3. fs (文件系统模块)4. path5. cors6. body-parser总结 三、示例代码 一、文件结构 chunks文件分片存储node_modules依赖uploads合并后的文件存储目录index.js程序主文件 二、主要依赖 1. express const express require(express);作用express 是一个流行的 Node.js Web 框架它提供了一组简单的工具和功能用于构建 Web 服务器和处理 HTTP 请求。它简化了路由、请求和响应的处理使开发者能够更快速地构建 Web 应用。用法通过 express() 创建应用实例并处理路由、请求、响应等。下载 npm i express -S2. multer const multer require(multer); const upload multer({ dest: uploads/ });作用multer 是一个 Node.js 中间件专门用于处理 multipart/form-data 类型的表单数据尤其是文件上传。它可以将上传的文件保存到磁盘、内存或自定义位置。用法multer 配置了存储路径 dest: uploads/表示将上传的文件临时保存在 uploads/ 目录下。通过 upload.single(file) 或 upload.array(files) 可以处理单个文件或多个文件的上传。下载 npm i multer -S3. fs (文件系统模块) const fs require(fs);作用fs 是 Node.js 内置的文件系统模块提供了用于文件和目录操作的 API。它允许你读取文件、写入文件、删除文件、列出目录等。用法fs 允许对本地文件系统执行同步和异步操作常用于文件上传、存储、读取等操作。 4. path const path require(path);作用path 是 Node.js 内置模块提供了一些用于处理文件和目录路径的实用工具函数。它使得路径的操作变得更加简单且跨平台。用法常见的用法包括拼接路径、解析路径、获取文件扩展名等。例如path.join() 用于安全地拼接路径path.extname() 获取文件的扩展名。 5. cors const cors require(cors);作用cors 是一个中间件用于处理跨源资源共享CORS请求。CORS 是一种机制允许在不同域之间进行资源共享。cors 中间件允许你设置哪些源域可以访问服务器的资源。用法通过 app.use(cors()) 启用跨域请求支持允许所有域访问该服务器。你也可以通过 cors({origin: http://example.com}) 配置只允许指定的源访问。下载 npm i cors -S6. body-parser const Parser require(body-parser);作用body-parser 是 Express 中间件的一个旧版库用于解析请求的 body 部分。它支持将请求体解析为 JSON、URL 编码格式等并将解析后的数据附加到 req.body 上。用法可以使用 Parser.json() 和 Parser.urlencoded() 来分别解析 JSON 数据和 URL 编码的数据。 Parser.json()用于解析 application/json 类型的请求体将其解析为 JavaScript 对象。Parser.urlencoded({ extended: true })用于解析 URL 编码的表单数据extended 选项为 true 时支持更复杂的对象和数组解析。Parser.json({limit:5gb})限制请求体的大小为 5GB。 下载 npm i body-parser -S总结 express用来创建 Web 服务器和路由。multer用来处理文件上传。fs用于操作文件系统如读取、写入文件。path提供路径操作的工具跨平台支持。cors用于处理跨域请求允许不同域访问资源。body-parser解析 HTTP 请求体JSON 或 URL 编码数据并将其附加到 req.body 中。 三、示例代码 关于如何使用在 Vue3使用多线程处理文件分片任务 中有介绍到感兴趣的可以去看看。 const express require(express); const multer require(multer); const fs require(fs); const path require(path); const cors require(cors) const Parser require(body-parser);// 创建 express 应用 const app express(); const upload multer({ dest: uploads/ }); // parse application/x-www-form-urlencoded app.use(Parser.json({limit:5gb})); app.use(Parser.urlencoded({limit:5gb,extended:true})); // parse application/json app.use(Parser.json()); app.use(cors())// 接收分片 app.post(/upload-chunk, upload.single(file), (req, res) {const { chunkIndex, hash, fileName } req.body; // 分片索引、哈希值、文件名const chunk req.file; // 上传的分片文件const chunkDir path.join(__dirname, chunks, fileName); // 存储分片的目录if (!fs.existsSync(chunkDir)) fs.mkdirSync(chunkDir, { recursive: true }); //文件夹不存在则进行创建// chunkDir 命名时候需要注意尽量进行标识以防文件名冲突const chunkPath path.join(chunkDir, ${chunkIndex}-${hash}); // 分片文件名加哈希fs.rename(chunk.path, chunkPath, (err) {if (err) {console.error(存储分片失败:, err);return res.json({code:500, msg: 存储失败请重新上传 });}res.json({ code:200, msg: ${chunkIndex} 上传成功 });}); }); // 合并文件 app.post(/merge-chunks, async (req, res) {const { fileName, totalChunks } req.body;const chunkDir path.join(__dirname, chunks, fileName);const targetPath path.join(__dirname, uploads, fileName); // 最终文件存储路径try {// 确保目标文件不存在if (fs.existsSync(targetPath)) {fs.unlinkSync(targetPath);}const writeStream fs.createWriteStream(targetPath);for (let i 0; i totalChunks; i) {const chunkFiles fs.readdirSync(chunkDir).filter((file) file.startsWith(${i}-));if (chunkFiles.length 0) {res.json({code:500, msg: 上传失败请重新上传 });throw new Error(分片缺失: ${i});}// 读取分片内容const chunkPath path.join(chunkDir, chunkFiles[0]);const data fs.readFileSync(chunkPath);writeStream.write(data);// 删除已合并分片fs.unlinkSync(chunkPath);}writeStream.end();// 删除分片目录fs.rmdirSync(chunkDir);res.json({ code:200, msg: 文件上传成功, path: /uploads/ fileName });} catch (err) {console.error(合并文件失败:, err);res.json({code:500, msg: 文件合并失败 });} });// 启动服务器 const PORT 3000; app.listen(PORT, 0.0.0.0, () {console.log(Server started on http://localhost:${PORT}); })
http://www.dnsts.com.cn/news/157533.html

相关文章:

  • 网站建设公司怎么投诉江苏商城网站制作公司
  • 建设项目环境登记表辽宁省网站wordpress封采集站ip
  • 网站建设中轩网怎么样哪些公司做外贸网站
  • 做网站的一般多少钱想做一款app要怎么入手
  • 域名备案后怎样做网站桂林做网站多少钱
  • 网页设计感十足的网站宣城网站建设jidela
  • vs和php哪个做网站好专业摄影网站推荐
  • 为什么要建微网站华天动力oa系统
  • 为什么手机网站跳转页面上门户网站开发
  • 重庆门户网站推广方案网站开发能从事那些职业
  • 青岛学网站建设的大学cms建站
  • linux建网站怎样注册免费域名
  • 湖北专业网站建设大全买个天猫店多少钱一个
  • 网站推广方式百度云郑州网站优化公司电话
  • 网站建设首选原创先锋网站开发软件 手机
  • 有什么网站可以做家装WordPress pwa
  • 网站整体建设方案wordpress 主题之家
  • 衡水建网站多少钱如何设计一个logo
  • 怎么建网站视频wordpress 付费功能
  • 装修公司做网站好做吗江苏建设工程招标网官方网站
  • 网站建设一条龙ue365仿百度 wordpress
  • 中山市企业网站建立网站程序找人做还是自己做
  • 郑州联通网站备案重庆网页优化seo公司
  • 兰州网站建设推荐q479185700上快睿艺美开封做网站
  • 怎么做装饰公司网站宣传简单的房源展示网站开发
  • 简述建设网站建设的基本流程域名格式是什么
  • 做电影网站选择什么配置的服务器我的世界怎么做购买点卷网站
  • 摄影网站的意义wordpress私密文章权限设置
  • .net电商网站开发设计惠州百度seo地址
  • 中国建设银行信用卡黑名单网站手机维护 Wordpress