json-server跨域基本使用

本文介绍如何使用json-server将本地json文件快速转换为RESTful API,包括全局安装、启动服务器及解决端口冲突的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

json-server:把json文件变成接口文件。

1.全局安装,使用命令行工具

npm i -g json-server

2.查看是否安装成功

json-server

如果出现如下显示,则成功

3.创建目录如server目录存放数据db.json(这个数据是json格式的数据)

4.使用命令行工具,进行监控数据,启动接口服务器。

json-server --watch db.json

注意:如果端口号被占用,使用命令

json-server --watch --port 3001 db.json

 

<think>我们正在处理用户关于在Vue项目中使用json-server搭建本地后端服务的问题。根据提供的引用信息,我们可以总结出以下步骤: 1. 安装json-server-Vue项目目录中,通过npm安装json-server。可以使用`--save`选项将其保存为开发依赖。 - 也可以全局安装,以便在任何地方使用。 2. 准备数据文件: - 创建一个JSON文件(例如db.json)作为模拟数据源。该文件应该包含符合RESTful API结构的数据。 3. 启动json-server- 在终端中,进入db.json文件所在的目录,运行启动命令,指定要监视的JSON文件和端口(可选)。 - 为了方便,可以将启动命令写入package.json的scripts中,例如使用`npm run mock`启动。 4. 在Vue组件中调用API: - 使用axios或其他HTTP客户端发送请求到json-server提供的API端点。 - 注意json-server默认在本地(localhost)的指定端口(如3000)上运行。 5. 处理响应: -Vue组件中处理从json-server返回的数据。 根据引用内容,我们还可以提供一些细节: - 引用[1]:展示了启动json-server的命令,并说明它默认监视文件变化。 - 引用[2]:提到安装json-server的两种方式(局部和全局)。 - 引用[3]:给出了在Vue项目中启动json-server的示例命令,以及如何将其写入package.json的scripts中。 - 引用[4]:展示了在Vue组件中使用axios调用json-server API的代码示例。 现在,我们将按照步骤详细说明如何在Vue项目中使用json-server搭建本地后端服务。 ### 步骤1:安装json-serverVue项目根目录下,打开终端,执行以下命令安装json-server(作为开发依赖): ```bash npm install json-server --save-dev ``` 或者全局安装(可选): ```bash npm install -g json-server ``` ### 步骤2:创建模拟数据文件 在项目目录中(例如在项目根目录或src目录下)创建一个JSON文件,比如`db.json`,并填充一些模拟数据。例如: ```json { "posts": [ { "id": 1, "title": "json-server", "author": "typicode" } ], "comments": [ { "id": 1, "body": "some comment", "postId": 1 } ], "profile": { "name": "typicode" } } ``` ### 步骤3:启动json-server #### 方式一:通过命令行直接启动 在终端中,进入存放`db.json`文件的目录,然后运行: ```bash json-server --watch db.json --port 3003 ``` - `--watch` 表示监视文件变化(默认已启用,可省略) - `--port 3003` 指定端口(可选,默认3000) #### 方式二:通过npm脚本启动 在`package.json`的`scripts`中添加一条命令,例如: ```json "scripts": { "mock": "json-server --watch src/db.json --port 3003" } ``` 然后运行: ```bash npm run mock ``` 注意:如果db.json在src目录下,则路径应为`src/db.json`。如果db.json在项目根目录,则直接写`db.json`。 ### 步骤4:在Vue组件中调用API 首先,安装axios(如果尚未安装): ```bash npm install axios ``` 然后在Vue组件中,使用axios发送请求到json-server的API。例如: ```vue <template> <div> <button @click="getPosts">获取文章</button> <ul> <li v-for="post in posts" :key="post.id">{{ post.title }}</li> </ul> </div> </template> <script> import axios from 'axios'; export default { data() { return { posts: [] }; }, methods: { getPosts() { axios.get('http://localhost:3003/posts') .then(response => { this.posts = response.data; }) .catch(error => { console.error('获取数据失败:', error); }); } } } </script> ``` ### 说明 - json-server会为db.json中的每个顶级键生成对应的RESTful端点(如`/posts`,`/comments`,`/profile`)。 - 支持GET、POST、PUT、PATCH、DELETE等HTTP方法,并会持久化到db.json文件中(在文件监视模式下,修改会实时写入文件)。 - 默认情况下,json-server还支持一些高级功能,如过滤、分页、排序等,可以通过查询参数实现。 通过以上步骤,我们就在Vue项目中成功搭建了一个本地后端服务,并实现了数据的模拟和交互。 §§相关问题§§ 1. json-server支持哪些RESTful API的高级查询功能? 2. 在Vue项目中,如何封装axios以更好地与json-server交互? 3. 如何模拟用户认证(如JWT)与json-server集成? 4. json-server在文件更新时如何避免频繁写入磁盘?</think>### 在Vue项目中使用json-server搭建本地后端服务 以下是详细步骤(基于Vue3): #### 1. 安装json-server ```bash # 局部安装(推荐) npm install json-server --save-dev # 或全局安装 npm install -g json-server ``` > 局部安装会将依赖写入`package.json`[^2] #### 2. 创建模拟数据文件 在项目根目录创建`db.json`: ```json { "users": [ { "id": 1, "name": "张三", "email": "[email protected]" }, { "id": 2, "name": "李四", "email": "[email protected]" } ], "posts": [ { "id": 1, "title": "Vue教程", "author": 1 } ] } ``` #### 3. 配置启动脚本 在`package.json`中添加: ```json "scripts": { "mock": "json-server --watch db.json --port 3000" } ``` > 启动命令:`npm run mock`,默认监听3000端口[^3] #### 4. 在Vue组件中调用API ```vue <template> <button @click="fetchUsers">获取用户数据</button> <ul> <li v-for="user in users" :key="user.id"> {{ user.name }} - {{ user.email }} </li> </ul> </template> <script> import axios from 'axios'; export default { data() { return { users: [] } }, methods: { async fetchUsers() { try { const response = await axios.get('http://localhost:3000/users'); this.users = response.data; } catch (error) { console.error('请求失败:', error); } } } } </script> ``` #### 5. 高级功能配置 ##### 自定义路由(创建`routes.json`) ```json { "/api/users": "/users", "/api/posts/:id": "/posts/:id" } ``` 启动命令: ```bash json-server db.json --routes routes.json ``` ##### 延迟响应(模拟网络延迟) ```bash json-server db.json --port 3000 --delay 1500 ``` #### 注意事项 1. **文件路径**:若`db.json`在`src`目录,启动命令改为: ```json "mock": "cd src && json-server db.json --port 3003" ``` 2. **问题**:json-server默认启用CORS,无需额外配置 3. **数据持久化**:所有POST/PUT/PATCH请求会自动更新`db.json`文件[^1] 4. **实时更新**:修改`db.json`后会自动重启服务(需保持`--watch`参数) > 完整REST API支持: > - `GET /users` 获取所有用户 > - `POST /users` 创建新用户 > - `PUT /users/1` 更新ID=1的用户 > - `DELETE /users/1` 删除用户[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值