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

医药网站备案电商分销

医药网站备案,电商分销,百度企业查询,宁夏网站建设最近有一个项目,全部数据给的是json文件,大量json文件的读取导致IO读取爆表,但是不给提供数据库 现有解决办法就是把所有文件在项目构建时,读取存为全局变量,缓存在内存里,减轻I/O压力 server/plugins/apps…

最近有一个项目,全部数据给的是json文件,大量json文件的读取导致IO读取爆表,但是不给提供数据库

现有解决办法就是把所有文件在项目构建时,读取存为全局变量,缓存在内存里,减轻I/O压力

server/plugins/apps.ts 中获取的数据会存在内存中

这是因为:

  1. 该文件中定义的变量是在模块级别定义的,它的生命周期会持续到服务器运行期间。
  2. 当使用 defineNitroPlugin 时,这个插件会在服务器启动时执行一次,将数据加载到 appsData 变量中
  3. 在 Node.js 中,模块级别的变量会被缓存,并且在整个服务器运行期间保持存在。
  4. 在 Nuxt3 的 Nitro 服务器中,defineNitroPlugin 确保了这个初始化过程只会在服务器启动时执行一次。

实现步骤:

server/plugins/app.ts

// 定义一个全局变量来存储应用数据
let appsData: any[] = []
let loadCount = 0 // 添加计数器来验证加载次数export default defineNitroPlugin(async () => {try {loadCount++console.log('=== 开始预加载应用数据 ===', '第', loadCount, '次加载')const filePath = 'public/data/apps'const files = await fs.readdir(filePath)console.log('===找到文件:', files.length, '条文件 ===')const apps = await Promise.all(files.map(async file => {const content = await fs.readFile(path.join(filePath, file), 'utf8')return JSON.parse(content)}))// 将所有应用数据合并并存储到全局变量中appsData = apps.flat()console.log('=== 应用数据预加载完成,共加载', appsData.length, '条数据 ===')} catch (error) {console.error('Error preloading apps data:', error)}
})// 导出一个函数来获取应用数据
export function getAppsData() {console.log('---从内存中获取应用数据,当前数据条数:', appsData.length, '---')return appsData
} 

调用方法

server/api/app/[slug].get.ts

import { getRouterParam } from 'h3'
import { getAppsData } from '~/server/plugins/apps'export default defineEventHandler(async (event) => {try {const slug = getRouterParam(event, 'slug')// 使用预加载的数据const allApps = getAppsData()// 根据slug查找应用const app = allApps.find(app => app.slug === slug)return app} catch (error) {console.error('Error finding app:', error)return null}
}) 
http://www.dtcms.com/wzjs/551330.html

相关文章:

  • 县级部门和乡镇不能建网站建设全球最大的网络公司排名
  • 广州做网站比较好的公司wordpress高级视频教程
  • 新网站怎样做外链综合网站有哪些
  • 动漫设计工作室网站宣传片制作手机网页打不开
  • 营销型网站的建设流程图电商设计师的工作内容
  • 怎么做p2p网站摄影作品
  • 建设项目经济评价网站苏州网络平台公司
  • pc端网站建设哪里有推荐一本学做网站的书
  • 如何做能放照片的网站安徽网站建设怎么样
  • 钻戒网站建设需求上海中学国际部学费
  • 建站公司没前端原创代写文章平台
  • 自己的网站怎么编辑龙岩营销型网站建设
  • 网站建设背景怎么写网站ico如何添加
  • 门户网站 模块企业内网模板
  • 巴中自助网站建设江永网站建设
  • 苏州pc网站开发基于php技术的小型企业网站开发
  • 如何查看网站开发者流量宝做网站流量
  • 那个网站做港货比较好个人网站模板打包下载
  • 做网站系统的销售怎么做wordpress网页自适应屏幕大小
  • 廊坊网站建设佛山厂商佛山网站制作维护
  • 房产网站系统源码江西南昌建设厅网站
  • 电商网站建设培训个人备案20字备注
  • 域名网站如何做市场推广台州椒江做网站
  • 舟山做网站公司网站建设提供的网站资料
  • 如何确定一个网站的关键词长沙网站自己制作
  • 甘肃省住房和建设厅网站服务中心杭州seo网络公司
  • 邓修明调研成都网站建设专业做招聘的网站有哪些
  • 苏州建网站皆去苏州聚尚网络网站推广的技巧和方法
  • 上传到网站根目录个人网站建设书
  • 网站开发中常见的安全漏洞重庆网站建设近重庆零臻科技