写一个json-server通过post请求获取数据的demo
时间: 2024-02-16 19:00:54 浏览: 26
好的,以下是一个使用json-server通过post请求获取数据的简单示例:
首先,安装json-server:
```
npm install -g json-server
```
然后,创建一个名为db.json的JSON数据文件,包含以下内容:
```json
{
"posts": []
}
```
接下来,使用以下命令启动json-server:
```
json-server --watch db.json
```
现在,你可以使用curl或其他HTTP客户端向json-server发送POST请求来添加新的帖子数据。例如,以下命令将添加一个名为“New Post”的新帖子:
```
curl -X POST -H "Content-Type: application/json" -d '{"title": "New Post", "author": "John Doe"}' http://localhost:3000/posts
```
最后,你可以使用以下命令向json-server发送GET请求,获取所有帖子数据:
```
curl http://localhost:3000/posts
```
这将返回一个包含所有帖子数据的JSON响应。如果之前已经添加了“New Post”帖子,它应该在响应中显示出来。
希望这个简单示例能够帮助你更好地了解json-server如何通过POST请求获取数据。
相关问题
json-server可以模拟多个请求吗,请帮我写一个demo
好的,下面是一个简单的demo,演示如何在json-server中定义多个路由并模拟多个请求。
首先,创建一个json文件(例如db.json),并定义两个路由,一个用于获取数据,一个用于提交数据。示例代码如下:
```json
{
"posts": [],
"comments": []
}
```
接下来,安装json-server:
```
npm install -g json-server
```
然后,在命令行中启动json-server,指定json文件和端口号:
```
json-server --watch db.json --port 3000
```
现在,你可以在浏览器中访问http://localhost:3000/posts来获取数据(因为我们在json文件中定义了一个名为posts的路由),也可以使用curl等工具向http://localhost:3000/comments发送POST请求来提交数据(因为我们在json文件中定义了一个名为comments的路由)。
当然,这只是一个简单的示例,你可以根据自己的需求定义更多的路由和中间件来模拟不同的请求。
jfinal+vue+el写一个项目demo
好的,下面我将为您提供一个简单的demo示例,使用jfinal+vue+el来实现一个用户管理系统。
1. 准备工作
首先,需要安装Java环境和Maven工具。然后,创建一个Maven项目,并添加以下依赖:
```xml
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>4.9.06</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
```
2. 创建数据库表
在MySQL中创建一个名为user的表,包含以下字段:
- id
- username
- password
- nickname
- email
3. 创建后端代码
创建一个UserController类,用于处理用户相关的请求。
```java
public class UserController extends Controller {
public void index() {
render("index.html");
}
public void list() {
int pageNumber = getParaToInt("page");
int pageSize = getParaToInt("limit");
Page<User> userList = User.dao.paginate(pageNumber, pageSize, "select *", "from user");
renderJson(JSON.toJSONString(userList));
}
public void save() {
User user = getModel(User.class, "");
if (user.save()) {
renderJson(JSON.toJSONString(Result.success()));
} else {
renderJson(JSON.toJSONString(Result.failure("保存失败")));
}
}
public void update() {
User user = getModel(User.class, "");
if (user.update()) {
renderJson(JSON.toJSONString(Result.success()));
} else {
renderJson(JSON.toJSONString(Result.failure("更新失败")));
}
}
public void delete() {
Integer id = getParaToInt("id");
if (User.dao.deleteById(id)) {
renderJson(JSON.toJSONString(Result.success()));
} else {
renderJson(JSON.toJSONString(Result.failure("删除失败")));
}
}
}
```
创建一个User类,用于操作数据库。
```java
public class User extends Model<User> {
public static final User dao = new User().dao();
public Integer getId() {
return getInt("id");
}
public void setId(Integer id) {
set("id", id);
}
public String getUsername() {
return getStr("username");
}
public void setUsername(String username) {
set("username", username);
}
public String getPassword() {
return getStr("password");
}
public void setPassword(String password) {
set("password", password);
}
public String getNickname() {
return getStr("nickname");
}
public void setNickname(String nickname) {
set("nickname", nickname);
}
public String getEmail() {
return getStr("email");
}
public void setEmail(String email) {
set("email", email);
}
}
```
4. 创建前端代码
创建一个index.html文件,用于展示用户列表和添加用户。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Management System</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.15.1/theme-chalk/index.css">
</head>
<body>
<div id="app">
<el-container>
<el-header>
<h1 style="color: white">用户管理系统</h1>
</el-header>
<el-main>
<el-table :data="userList" border style="width: 100%">
<el-table-column label="ID" prop="id"></el-table-column>
<el-table-column label="用户名" prop="username"></el-table-column>
<el-table-column label="昵称" prop="nickname"></el-table-column>
<el-table-column label="邮箱" prop="email"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" @click="editUser(scope.row)">编辑</el-button>
<el-button type="danger" @click="deleteUser(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :total="total" :page-size="pageSize" :current-page.sync="currentPage" @current-change="getPage"></el-pagination>
<el-form :model="user" ref="userForm" label-width="80px" style="margin-top: 20px;">
<el-form-item label="用户名" prop="username">
<el-input v-model="user.username" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="user.password" placeholder="请输入密码"></el-input>
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input v-model="user.nickname" placeholder="请输入昵称"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="user.email" placeholder="请输入邮箱"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="saveUser">保存</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</el-main>
</el-container>
</div>
<script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js"></script>
<script src="https://cdn.staticfile.org/element-ui/2.15.1/index.js"></script>
<script src="https://cdn.staticfile.org/axios/0.21.1/axios.min.js"></script>
<script type="text/javascript">
new Vue({
el: '#app',
data: {
userList: [],
total: 0,
pageSize: 10,
currentPage: 1,
user: {
username: '',
password: '',
nickname: '',
email: ''
}
},
created: function () {
this.getPage(1);
},
methods: {
getPage: function (page) {
let _this = this;
axios.get('/user/list', {
params: {
page: page,
limit: _this.pageSize
}
}).then(function (response) {
_this.userList = response.data.list;
_this.total = response.data.total;
}).catch(function (error) {
console.log(error);
});
},
editUser: function (row) {
this.user = row;
},
deleteUser: function (row) {
let _this = this;
let id = row.id;
axios.post('/user/delete', {
id: id
}).then(function (response) {
_this.getPage(_this.currentPage);
}).catch(function (error) {
console.log(error);
});
},
saveUser: function () {
let _this = this;
this.$refs.userForm.validate(function (valid) {
if (valid) {
axios.post('/user/save', _this.user).then(function (response) {
_this.getPage(_this.currentPage);
_this.resetForm('userForm');
}).catch(function (error) {
console.log(error);
});
} else {
return false;
}
});
},
resetForm: function (formName) {
this.$refs[formName].resetFields();
this.user = {
username: '',
password: '',
nickname: '',
email: ''
};
}
}
});
</script>
</body>
</html>
```
5. 配置路由
在JFinalConfig类中配置路由。
```java
public class DemoConfig extends JFinalConfig {
@Override
public void configConstant(Constants me) {
me.setDevMode(true);
}
@Override
public void configRoute(Routes me) {
me.add("/user", UserController.class);
}
@Override
public void configPlugin(Plugins me) {
DruidPlugin dp = new DruidPlugin("jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf-8", "root", "123456");
me.add(dp);
ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
me.add(arp);
arp.addMapping("user", User.class);
}
@Override
public void configInterceptor(Interceptors me) {
}
@Override
public void configHandler(Handlers me) {
}
}
```
6. 运行项目
运行项目,访问http://localhost:8080/user/index即可看到用户管理系统页面。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)