Code Monkey home page Code Monkey logo

Comments (5)

pengzhanbo avatar pengzhanbo commented on May 24, 2024

由于插件是对 每个 *.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.

pengzhanbo avatar pengzhanbo commented on May 24, 2024

根据这类场景,目前我计划在 插件中 新增一个 defineMockData(key, data) 的函数,对数据进行包装,实现共享。

from vite-plugin-mock-dev-server.

duxphp avatar duxphp commented on May 24, 2024

好的,谢谢,目前先用 nosql 了

from vite-plugin-mock-dev-server.

pengzhanbo avatar pengzhanbo commented on May 24, 2024

@duxphp

已在 v1.3.1 版本中添加了 defineMockData(key, data) 的支持。具体使用方式请查看 文档

由于是基于 memory ,每次重启开发服务,数据都会重置。如果有 数据持久化的需求,建议还是 nosql ,将数据保存到本地文件中维护。

from vite-plugin-mock-dev-server.

duxphp avatar duxphp commented on May 24, 2024

谢谢 更新太快了

from vite-plugin-mock-dev-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.