【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口

本文介绍了如何使用Express和MySQL实现RESTful接口,包括添加、删除员工等操作。讲解了接口的URL设计、请求方法、数据过滤及返回结果格式,并提供了具体的代码示例。通过这些接口,可以进行资源的增删改查操作,实现了前后端数据交互的基本功能。
摘要由CSDN通过智能技术生成

1、首先我们需要知道,接口是什么?

接口是后端为前端提供的数据——动态资源;Node.js通过每一个路由就可以实现接口

2、RESTful接口:是一种接口的架构风格

1、请求的URL(资源)

在资源前需添加版本号 /v1/users

名字使用名词,使用复数形式

/users        用户的资源

/emps         员工资源

/products     商品资源

后边加入特殊的操作

/users/login  用户登录

/users/reg    用户注册

单个资源的操作,

传递编号(params传递)

/users/1

/emps/5

2、请求方法,对资源的操作

增(新建资源) post

传参方式

post

删(删除资源) delete

params

改(修改资源) put

post

查(获取资源) get

params

3、过滤数据(传参)

eg1:获取第1页,每页显示10条数据,传递页码和每页数据量(get传递)

/users?pno=1&count=10

eg2:获取工资在6000~8000之间的员工,传递工资的值

/emps?s1=6000&s2=8000

4、返回结果

是一个json对象形式,是一种字符串对象,属性名用双引号,属性值是字符串,也用双引号。包含:状态码、消息

'{ }'

eg1:登录的结果 '{ "code":200 , "msg":"登录成功" }'

eg2:获取一组用户 '{ "code":200 , "msg":"登录成功" , "data":一组数据}'

3、案例

案例1:添加商品到购物车

使用express创建WEB服务器,设置端口,添加搜索路由 get:'/myserch',响应:'搜索成功'

const express=require('express')
const app=express()
app.listen(3000,function(){
	console.log('服务器启动成功')
})
//添加路由get:/search',响应搜索的网页s.html,点击提交向服务器发请求post:'mysearch' ,响应'搜索成功'
//添加路由
app.get('/search',(req,res)=>{
	res.sendFile(__dirname+'/s.html')
})
//中间环节,可将所有post传参转为对象
app.use( express.urlencoded() )
//路由(post:'/mysearch'),响应提交按钮
app.post('/mysearch',(req,res)=>{
	console.log(req.body)
	res.send('搜索成功')
})


//路由 get:'/myseach' 响应搜索成功
//手动设置参数名
app.get('/mysearch/:kw',(req,res)=>{
	//获取params传递的参数
	console.log(req.params)
	res.send('搜索成功')
})

/*添加到购物车路由 get:shopping,传递商品的编号lid和要购买的数量num,响应:
添加购物车成功!
商品的编号:XXX
购买的数量:XXX     */
app.get('/shopping/:lid/:num',(req,res)=>{
	//获取params传递的参数
	console.log(req.params)
	res.send(`
	添加购物车成功!<br>
	商品的编号:${req.params.lid} <br>
	购买的数量:${req.params.num}
	`)
})

案例2:添加员工接口

//引入express模块
const express=require('express')
//引入mysql模块
const mysql=require('mysql')
//创建连接池
const pool=mysql.createPool({
	host:'127.0.0.1',
	port:'3306',
	user:'root',
	password:'',
	database:'tedu',
	connectionLimit:15
})
//创建WEB服务器
const app=express()
//设置端口
app.listen(3000,function(){
	console.log('服务器启动成功')
})
//将post传递的参数转为对象
app.use(express.urlencoded({
	extended:true
}) )
//添加员工路由 (post: '/v1/emps')→接口
//添加地址:http://127.0.0.1:3000/v1/emps
//请求方式:post
app.post('/v1/emps',(req,res)=>{
	//获取post传递的参数
	console.log(req.body)
	//执行SQL命令,将对象插入到数据表emp
	pool.query('insert into emp set ?',[req.body],(err,r)=>{
		if(err){
			throw err
		}
		console.log(r)	
		//成功以后再去响应
		//send方法会自动将JS对象转为JSON对象,不需要加''
	res.send({"code":200,"msg":"员工添加成功"})
	})

})

使用express创建WEB服务器,设置端口;添加路由(接口)。用于添加员工post:'/v1/emps',响应{"code":200,"msg":"员工添加成功"}

案例3:删除员工接口

编写删除员工接口(delete  /v1/emps/编号)  //路由中需要有参数名接收

获取传递的参数,执行SQL命令,删除编号对应的员工,如果失败{"code":501,"msg":"删除失败"}, 否则{"code":200,"msg":"删除成功"}

接口地址:http://127.0.0.1:3000/v1/emps/2

请求方法:delete

//引入express模块
const express=require('express')
//创建WEB服务器
const app=express()
//设置端口
app.listen(3000,function(){
	console.log('服务器启动成功')
})
//引入mysql模块
const mysql=require('mysql')
//创建连接池
const pool=mysql.createPool({
	host:'127.0.0.1',
	port:'3306',
	user:'root',
	password:'',
	database:'tedu',
	connectionLimit:15
})
//将post传参转为对象
app.use(express.urlencoded({
	extended:true 
}))
//删除员工接口 (delete  /v1/emps/2)
//删除地址:http://127.0.0.1:3000/v1/emps/2
//请求方式:delete
app.delete('/v1/emps/:id',(req,res)=>{
	console.log(req.body)
	pool.query('delete from emp where eid=?',[req.params.id],(err,r)=>{
		if(err){
			throw err
		}
		console.log(r)
		//成功以后响应
		if(r.affectedRows===0){
			res.send({"code":501,"msg":"删除失败"})
		}else{
			res.send({"code":200,"msg":"删除成功"})
		}
		
	})
})
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长安梦我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值