Node.js+Express.js+Postgresql的牛刀小试

作为一个合格的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专用可视化。这个有点复杂,我就简单展示一下,以后再慢慢来解释。

当发起get请求,渲染/views/pages/index,ejs

因为设置了路由所以url看起来是这样

我就是这么俗

我的超级简单index.ejs

并没有数据注入完全html语法

配置数据库

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一个自动记录当前时间的时间戳

id自增
时间戳自动记录


1)增--INSERT

基本用法:INSERT INTO (数据表名称)VALUES ( $1,$2..可理解为占位)RETURNING 字段1,字段2( 你想返回的字段,也可以不返回), [实际参数1,实际参数2.,..], (err,data)=>{回调}

console.log后台显示如下

再来看看客户端网页的情况

再来检查一下数据是否插入成功

我多刷了几次网页,多插入了几条数据

2)删--DELETE

基本用法: DELETE FROM 数据表名称  WHERE 限制条件 [RETURNING * 返回删除记录(可不要)]  

检查一下数据库

id=4的记录以及被删除了

3)改--UPDATE

基本语法:UPDATE 数据表名称 SET 字段1=,字段2= [WHERE 筛选条件 RETURNING 需要返回的字段](非必需)

检查一下数据库:

最大id的对应字段值已经更改成功

4)查--SELECT

基本语法:SELECT 字段 FROM 数据表名称 [ WHERE 筛选条件 ORDER BY 什么顺序](非必需)

查找col_1='hello'的记录有很多,我们选择按找id倒序排列的第一个

对比一下数据库:

满足查找条件

总结一下:

1)现在我们有了自己的小后台,虽然很简单但是基本功能都在,希望在此基础上方便大家一起搞事情,毕竟我的api我做主

2)Express并没有这么简单,这只是很小很小的一部分,view部分以及router,ejs的网页渲染还会有后续文章(我也在不断探索学习中)

3)数据库是要花时间专门来研究的,语法也是很多蛮复杂的,推荐看一下官方文档http://www.postgresqltutorial.com/,会开启另一片天地


奉献了周六的一个下午,把上面的代码每一段都完完整整的跑了一遍,亲测可用。

我在尽量把文章写的简单轻松一点,编程本来就没有那么难,或许在配置和debug的过程中并没有看起来这么容易,那就多读几遍document,多试试,最后都能解决,因为不能解决的问题,压根不会发生。

最近我一直在跟不同的计算机操作系统死磕,经理希望我可以填补一下知识空白区,祝我顺利进阶成功吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容