11.Node.js API接口

八、API接口

8.1 json-server工具

1)安装json-server

npm i -g json-server

2)示例

//students.json
{"student":[{"id":1,"name":"sally","age":18,"gender":"女"},{"id":2,"name":"ying","age":18,"gender":"女"},{"id":3,"name":"ejie","age":18,"gender":"女"},{"id":4,"name":"muyi","age":18,"gender":"男"}],"class":[{"id":1,"class":"一(1)"},{"id":1,"class":"一(2)"},{"id":1,"class":"一(3)"},{"id":1,"class":"一(4)"}]
}

启动json-server(默认监听端口为3000)

json-server --watch students.json

通过url访问

http://localhost:3000

//返回结果
/student - 4 items
/class - 4 items

http://localhost:3000/student

//返回结果:
[
{
id: "1",
name: "sally",
age: 18,
gender: "女"
},
{
id: "2",
name: "ying",
age: 18,
gender: "女"
},
{
id: "3",
name: "ejie",
age: 18,
gender: "女"
},
{
id: "4",
name: "muyi",
age: 18,
gender: "男"
}
]

http://localhost:3000/student/1

//返回结果
{
id: "1",
name: "sally",
age: 18,
gender: "女"
}

8.2使用postman对json-server进行数据操作

8.2.1新增数据

在这里插入图片描述

8.2.2删除数据

在这里插入图片描述

8.2.3更新数据

在这里插入图片描述

8.3增删改查API接口示例

//api.js
var express = require('express');
var router = express.Router();
const accountModel = require('../db/accountModel');
router.get('/account', function(req, res, next) {//获取所有数据apiaccountModel.find().sort({dateTime:-1}).exec().then((accounts)=>{     res.json({code:'0000',msg:'读取成功',data:accounts})}).catch((err)=>{res.json({code:'1001',msg:'读取失败',error:err,data:null})})
})
router.get('/account/:id', function(req, res, next) {//获取单条数据apilet id=req.params.idaccountModel.find({_id:id}).then((data)=>{     res.json({code:'0000',msg:'读取成功',data:data})}).catch((err)=>{res.json({code:'1001',msg:'读取失败',error:err,data:null})})
})router.post('/account',function(req,res){//插入数据apireq.body.time=moment(req.body.time).toDate()accountModel.create({...req.body}).then((data)=>{res.json({code:'0000',msg:'插入数据成功',data:data})}).catch((err)=>{console.log(err)res.json({code:'1002',msg:'插入数据失败',error:err,data:null})})})router.delete('/account/:id',(req,res)=>{//删除数据apilet id=req.params.idaccountModel.findOneAndDelete({_id:id}).then((data)=>{if (!data){res.json({code:'1002',msg:'删除数据失败',error:'数据不存在',data:null})}else{res.json({code:'0000',msg:'删除数据成功',data:data})}}).catch((err)=>{console.log(err)res.json({code:'1002',msg:'删除数据失败',error:err,data:null})})})router.patch('/account/:id', function(req, res, next) {//更新单条数据apilet id=req.params.idaccountModel.updateOne({_id:id},req.body).then((data)=>{  //更新成功后重新到数据库读取被更新的数据,并返回给用户   accountModel.findOne({_id:id}).then((data)=>{res.json({code:'0000',msg:'更新成功',data:data})}).catch((err)=>{res.json({code:'1001',msg:'读取失败',error:err,data:null})})}).catch((err)=>{res.json({code:'1001',msg:'更新失败',error:err,data:null})})
})
module.exports = router;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1330.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux与Windows中的流量抓取工具:wireshark与tcpdump

1. wireshark(windows上主要用到的流量分析工具) 下载安装,安装到本地(安装到虚拟机可能抓不到包) 下载地址 1.1. 数据报文字段含义 source:源IP destination:目的IP protocol:协…

DevExpress中文教程 - 如何使用AI模型检查HTML编辑中的语法?

DevExpress .NET MAUI多平台应用UI组件库提供了用于Android和iOS移动开发的高性能UI组件,该组件库包括数据网格、图表、调度程序、数据编辑器、CollectionView和选项卡组件等。 目前许多开发人员正在寻找多种方法将AI添加到解决方案中(这通常比想象的要…

Django+Vue智慧分析居家养老系统统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…

400G光模块的3种封装(QSFP-DD、OSFP、CFP8)

400G光模块封装的趋势 光模块封装形式具有三个共同特点:外形小巧、功耗低、可与所有系统供应商互操作。了解 100G光模块市场的发展将有助于我们理解400G技术的引入。服务提供商需要可插拔光模块来实现长距离和专用技术,例如相干检测。数据中心团队需要一…

基于SSM+微信小程序的社团登录管理系统(社团1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 2、项目技术 3、开发环境 4、功能介绍 1、项目介绍 基于SSM微信小程序的社团登录管理系统实现了管理员及社团、用户。 1、管理员实现了首页、用户管理、社团管理、社团信息管理、社…

宝塔FTP服务配置结合内网穿透实现安全便捷的远程文件管理和传输

文章目录 前言1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 前言 本文主要介绍宝塔FTP文件传输服务如何搭配内网穿透工具,实现随时随地远程连接局域网环境搭建的宝塔FTP文件服务并进行文件…

SpringBoot旋律:打造现代Web音乐平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理音乐网站的相关信息成为必然。开发合适的音…

labview学习总结

labview学习总结 安装labview的特点一、图形化编程范式二、并行执行机制三、硬件集成能力四、应用领域优势五、开发效率六、系统集成能力**labview基本组成示意图****常用程序结构图解**结语 基础知识介绍界面前后面板的概念平铺式和层叠式 帧的概念结构类型顺序结构for循环whi…

AI在医学领域:一种用于肩部CT扫描的新型深度学习框架

肩关节骨关节炎(OA)是一种常见的慢性退行性关节疾病,通常与老化相关的磨损有关,但也可能由创伤、劳损或退变等因素引起。其主要症状包括肩关节疼痛、肿胀、活动受限和弹响等。肩关节骨关节炎的高危因素包括既往肩部手术、创伤史、…

【论文翻译】IJCAI 2019 | Graph WaveNet:用于深度时空图建模的Graph WaveNet

论文题目Graph WaveNet for Deep Spatial-Temporal Graph Modeling作者团队Zonghan Wu, Shirui Pan, Guodong Long, Jing Jiang, Chengqi Zhang机构澳大利亚悉尼科技大学人工智能中心 (UTS) 和 澳大利亚莫纳什大学发表会议IJCAI 2019论文链接https://www.ijcai.org/proceedings…

宝塔使用clickhouse踩坑

前言 最近有个物联网项目,需要存储物联网终端发送过来的信息(类似log日志,但又要存储在数据库里,方便后期聚合统计),本来想写文件的奈何客户要求聚合统计,所以只能用数据库才能达到更高的计算效…

群控系统服务端开发模式-应用开发-文件上传功能开发

一、文件上传路由 在根目录下route文件夹中app.php文件中,添加文件上传功能路由,代码如下: Route::post(upload/file,common.Upload/file);// 上传文件接口 二、功能代码开发 在根目录下app文件夹下common文件夹中创建上传控制器并命名为Up…

ZYNQ7020使用IIC协议读写IO扩展芯片PCF8575

IO扩展是个好东西, 占用资源少. 适合用在响应要求不高的场合. PCF8575最大的好处是有个中断反馈引脚, 方便读取状态. 下面直接上代码. Vivado中的配置. XDC文件的配置 set_property -dict {PACKAGE_PIN L14 IOSTANDARD LVCMOS33} [get_ports IIC_0_scl_io] set_property -dic…

如何确定DFMEA中发生频率(O)的风险优先数(RPN)?

众所周知,DFMEA(设计失效模式和效果分析)特别关注于产品设计阶段的风险评估。在DFMEA中,风险优先数(RPN)是一个核心指标,用于量化失效模式的严重性(S)、发生频率&#xf…

goframe开发一个企业网站 前端界面 拆分界面7

将页面拆出几个公用部分 在resource/template/front创建meta.html header.html footer.html meta.html <head><meta charset"utf-8"><meta content"widthdevice-width, initial-scale1.0" name"viewport"><title>{{.…

充电宝哪个最好最耐用?2024盘点五款优质充电宝,附选购指南!

充电宝哪个最好最耐用?在电子设备日益普及的今天&#xff0c;充电宝成为了我们生活中的必需品&#xff0c;它不仅能够解决手机电量不足的燃眉之急&#xff0c;更是旅行、工作时的得力助手。然而&#xff0c;面对市场上众多品牌和型号的充电宝&#xff0c;如何挑选出既优质又耐…

五指cms安装

我在安装五指cms的过程中发现一个问题&#xff0c;我看到的大部分的安装指导并没有详细的告诉大家该怎样做。所以我写这篇博客来进行一个比较详细的指导。 第一步&#xff1a;解压我们的wuzhicms文件并将其移动到phpstudy的WWW文件目录下。 第二步&#xff1a; 在phpstudy配置…

新手学习大模型(LLM),应该从哪个模型开始

建议先从主流的Qwen2、Llama3.1上手&#xff0c;先快速体验提示词工程&#xff0c;然后再学习LLM模型架构&#xff0c;尝试RAG&#xff0c;跑LORA微调脚本。 进一步的学习目标: 学习如何从零训练大模型(1B左右规模&#xff0c;预训练SFTDPO)&#xff0c;打通整个流程。 钻研…

什么开放式耳机好用?开放式耳机品牌十大排名揭秘误区

对于很多消费者来说&#xff0c;了解什么开放式耳机好用是购买决策的关键。开放式耳机品牌十大排名可以为我们提供一些参考&#xff0c;但在这个过程中&#xff0c;我们也需要警惕一些误区。其中就包括一些关于开放式耳机的谣言&#xff0c;比如对耳朵有伤害、完全不漏音、是否…

javascript-Web APLs (三)

事件流 指的是事件完整执行过程中的流动路 说明&#xff1a;假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段 简单来说&#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父 实际工作都是使用事件冒泡为主 事件…