Comments (5)
由于插件是对 每个 *.mock.ts
进行独立编译的,其 import * from './data.ts
对于每个 *.mock.ts
编译后,都隔离在各自作用域中,并不共享。
对于 需要 实现对数据的操作并保存操作后的结果,建议使用 lowdb 之类的 nosql ,将数据保存到本地文件中,通过 lowdb
对文件中的数据进行操作。实现数据持久化。
db.ts
import { join, dirname } from 'node:path'
import { fileURLToPath } from 'node:url'
import { Low } from 'lowdb'
import { JSONFile } from 'lowdb/node'
const __dirname = dirname(fileURLToPath(import.meta.url))
export function createDBHelper(filename: string) {
const file = join(__dirname, filename)
const adapter = new JSONFile(file)
const defaultData = { posts: [] }
const db = new Low(adapter, defaultData)
return db
}
*.mock.ts
import { defineConfig } from 'vite-plugin-mock-dev-server'
import { createDBHelper } from './db'
const db = createDBHelper('data.json')
export default defineConfig({
url: '/api/post',
body: async () => {
await db.read()
return db.data.posts
}
})
import { defineConfig } from 'vite-plugin-mock-dev-server'
import { createDBHelper } from './db'
const db = createDBHelper('data.json')
export default defineConfig({
url: '/api/post/delete',
body: async (query) => {
await db.read()
db.data.posts.splice(0, 1)
await db.write()
return { message: 'success' }
}
})
from vite-plugin-mock-dev-server.
根据这类场景,目前我计划在 插件中 新增一个 defineMockData(key, data)
的函数,对数据进行包装,实现共享。
from vite-plugin-mock-dev-server.
好的,谢谢,目前先用 nosql 了
from vite-plugin-mock-dev-server.
已在 v1.3.1
版本中添加了 defineMockData(key, data)
的支持。具体使用方式请查看 文档
由于是基于 memory ,每次重启开发服务,数据都会重置。如果有 数据持久化的需求,建议还是 nosql
,将数据保存到本地文件中维护。
from vite-plugin-mock-dev-server.
谢谢 更新太快了
from vite-plugin-mock-dev-server.
Related Issues (20)
- 建议说明使用 ESModule 作为 mock 文件时,可能存在内存泄露风险。 HOT 2
- Invalid define value (must be an entity name or valid JSON syntax): {"BASE_URL":"./","MODE":"production","DEV":false,"PROD":true,"LEGACY":__VITE_IS_LEGACY__} HOT 3
- 如何设置mock 接口支持跨域?或如何 全局设置 mockConfig HOT 3
- 1.2.0版本导致vite启动报错 HOT 4
- 怎么只在yarn run preview下开启mock数据?不想在其他环境使用mock HOT 5
- vite4.x版本中使用别名导致随机性的导入一些方法失败 HOT 3
- 关于拦截问题
- [bot] add contributors HOT 13
- 希望可以显式定义 *.mock.ts 文件加载顺序,以便于控制不同文件中 mock 规则优先级。 HOT 12
- defineConfig不存在,文档是不是没更新? HOT 4
- next() 无法将 POST 请求转交给 Vite 默认代理中间件 HOT 7
- 希望 `mockDevServerPlugin` 添加一个 `base_url` 配置 HOT 2
- 是否可以支持mock数据低优先级 HOT 4
- mockServer 独立部署安装和启动报错 HOT 3
- mockServer 正常启动,但是接口进 mockServer 服务后报错,和一些实验性建议 HOT 6
- 未配置 vite 的 proxy 参数和插件的 prefix 参数,应输出警告信息。 HOT 3
- websocket不成功 HOT 9
- "[ERROR] Invalid define value (must be an entity name or valid JSON syntax)"... when JSON object is the value HOT 6
- [bug:]Cannot start service: Host version "0.19.8" does not match binary version "0.18.17" HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vite-plugin-mock-dev-server.