在Node.js下,专门 *** 作mysql数据库的模块
属于第三方模块,需要下载安装
npm install mysql
createConnection() 创建连接对象
createPool() 创建连接池,可以创建多个连接
multipleStatements:true //开启一次执行多个SQL命令,多个直接用分号隔开 |
connect() 测试连接,可以省略
query(SQL命令,回调函数) 执行SQL命令,通过回调函数获取结果
回调函数(err,r)
err 可能产生的结果
r 执行成功的结果
练习,执行SQL命令,删除编号为5的员工 |
练习:声明一个变量保存传递的一个员工的姓名,执行SQL命令,查询出该员工 |
SQL注入攻击:让用户提供的值里边,破坏了原来的SQL命令结构,添加的新的命令
防止SQL注入:
将所有用户提供的值进行过滤,不会破坏 SQL命令
利用set使用对象
对象属性的顺序与数据库端需要插入的值顺序不一致不影响使用
假设获取了浏览器端传递的一个员工数据,格式为对象,包含的属性有姓名,性别,生日,工资,部门编号; 执行SQL命令,将数据插入到员工表emp |
连接池和multipleStatements示例:
二、接口(API)
数据接口,要与JS的API区分开
接口:WEB服务器提供的动态资源,之前Node.js下,写的路由就是接口
三、RESTful接口是一种接口的规范
1.返回结果
是JSON对象形式,字符串的对象,属性名必须是双引号,属性值如果是字符串也必须是双引号
包含有状态码和结果信息
'{"code":200,"msg":"查找成功"}'
如果需要响应一组数据
'{"code":200,"msg":"查找成功","data":数据}'
2.接口地址
每一个接口是一个资源,资源名称都是一复数的形式
接口是一套软件,需要添加版本号,加在资源前面
例如:emp->emps uid->uids
http://127.0.0.1:3000/v1/emps/detail/3
版本号 资源名称
3.请求方式
get 获取资源(查询数据)
post 新建资源(插入数据)
delete 删除资源(删除数据)
put 修改资源(修改数据)
4.传参方式
post传递:修改资源和新建资源
params传递: *** 作单个资源,例如:获取1号员工数据,删除5号员工数据
http://127.0.0.1:3000/v1/emps/detail/3
get传递:过滤数据,例如:查询以后获取很多数据,拿到工资在6000-8000之间的
http://127.0.0.1:3000/v1/emps/?s1=6000&s2=8000
例如:查询出用户列表中第1页数据
http://127.0.0.1:3000/v1/emps/?pno=1&count=10 页码&每页数据
二~三综合练习:编写文件04_tedu.js,使用express创建WEB服务器,设置端口,添加路由(get /detail),使用params传参,传递员工编号,响应‘这是一个员工’
浏览器只能直接请求get形式的接口,其他接口不能直接请求
测试接口:需要使用专门的接口测试工具
APIPost:接口测试工具,可以生成接口使用文档
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)