作为一个合格的Developer写一个自己的API来满足脑袋里天马行空的想法是必须的,虽然并不是非常专业的后台工程师,更不是高大上的数据库工程师,但我有一颗什么都想插一脚不安分的小内心,所以这次就来分享给大家一个入门级别的后台。麻雀虽小,五脏俱全,虽然很简单,但是我们该有的什么都有。
先来简单介绍一下
1)编程语言JavaScript,下载Nodejs,Postgresql非常简单,这里两个链接供参考http://www.runoob.com/nodejs/nodejs-install-setup.html
https://www.yiibai.com/postgresql/install-postgresql.html
友情提示,安装完之后不要忘记添加环境变量,安装成功可以来检查一下
2)Expressjs是一个轻量级Web框架,官方链接 https://expressjs.com/zh-cn/,使用Nodejs直接操作Postgresql需要安装一个package,官方链接https://node-postgres.com/
3)额外的package:body-parser是非常常用的一个express中间件,作用是对post请求的请求体进行解析,参阅https://www.cnblogs.com/chyingp/p/nodejs-learning-express-body-parser.html
搭建一个简单的Express框架
先来看一下代码
1)端口5000,设置头文件解决万年特别坑人的跨域问题(不安全,但是适合搞事情,header还有一系列可设置参数,请根据需求自行学习
2)bodyParser是用来解析post传过来的json,或者form,text等content,limit如果不设置是有一个默认值,如果你的数据量非常大超过了默认值,服务器就会拒绝访问
2)你的console看起来应该是这样,表示正在监听
3)我们来发起一个get请求,渲染一个页面,express的模板引擎是ejs,一个依赖注入的可兼容html语法的express专用可视化。这个有点复杂,我就简单展示一下,以后再慢慢来解释。
因为设置了路由所以url看起来是这样
我的超级简单index.ejs
配置数据库
1)引入package
2)Get请求url:localhost:5000/retrieveFeature/
假设Get传了参数,前面引入的body-parse可以帮助我们很简单解析数据,不需要人工解析url.
我这里选择的是创建pool进程池,进程池可以重复使用,检测出来用户后执行操作,操作完毕释放资源,一定要释放,释放。。。不然进程池就满了,所有用户都挤不进来啦。
3)Post请求url:localhost:5000/getlocation/ ;data:{location:xxx,postal:yyy}
同样解析出传入参数,并定义两个储存变量
根据客户端传入参数查找数据库对应数据,
执行完操作后还是切记要释放你的连接,不然就要交通堵塞了,CPU分分钟爆满。
数据库常见操作
数据四大基本操作:增删改查
现在我们来create一个table,名字叫testtable,设置id自增主键,type为bigserisel,两个字段col_1,col_2,type均为Character varying一个自动记录当前时间的时间戳
1)增--INSERT
基本用法:INSERT INTO (数据表名称)VALUES ( $1,$2..可理解为占位)RETURNING 字段1,字段2( 你想返回的字段,也可以不返回), [实际参数1,实际参数2.,..], (err,data)=>{回调}
再来看看客户端网页的情况
再来检查一下数据是否插入成功
2)删--DELETE
基本用法: DELETE FROM 数据表名称 WHERE 限制条件 [RETURNING * 返回删除记录(可不要)]
检查一下数据库
3)改--UPDATE
基本语法:UPDATE 数据表名称 SET 字段1=,字段2= [WHERE 筛选条件 RETURNING 需要返回的字段](非必需)
检查一下数据库:
4)查--SELECT
基本语法:SELECT 字段 FROM 数据表名称 [ WHERE 筛选条件 ORDER BY 什么顺序](非必需)
对比一下数据库:
总结一下:
1)现在我们有了自己的小后台,虽然很简单但是基本功能都在,希望在此基础上方便大家一起搞事情,毕竟我的api我做主
2)Express并没有这么简单,这只是很小很小的一部分,view部分以及router,ejs的网页渲染还会有后续文章(我也在不断探索学习中)
3)数据库是要花时间专门来研究的,语法也是很多蛮复杂的,推荐看一下官方文档http://www.postgresqltutorial.com/,会开启另一片天地
奉献了周六的一个下午,把上面的代码每一段都完完整整的跑了一遍,亲测可用。
我在尽量把文章写的简单轻松一点,编程本来就没有那么难,或许在配置和debug的过程中并没有看起来这么容易,那就多读几遍document,多试试,最后都能解决,因为不能解决的问题,压根不会发生。
最近我一直在跟不同的计算机操作系统死磕,经理希望我可以填补一下知识空白区,祝我顺利进阶成功吧。