如何使⽤nodejs写⼀个接⼝
写前端的朋友不知道如何拓展⾃⼰在后端的能⼒,那么nodejs是你的不⼆选择,废话不多说,直接进⼊正题。
这⾥我演⽰的是nodejs+mysql,别的数据库也类似。
⾸先我们需要做两件事,下载nodejs和mysql安装,这些基本知识略过。
接着新建⼀个⽂件夹,在此⽂件夹下打开cms,或者vscode的终端,输⼊node init初始化⼀个项⽬,输⼊⼀些基本信息。
然后我们我们还需要安装以下包到--save下
express和mysql这两个包是最主要的,稍后再讲其他包的作⽤。
在这⾥我要阐明⼀个事实,这⾥的mysql是操作mysql数据库的⼀个js插件,并不是数据库软件,npm下载的包都是⼀些js的插件包。
好了,接下来和我⼀步步向下操作就可以了。
在⽂件夹下新建⼀个index.js⽂件,当然别的名字也可以,这个⽂件是你整个程序的⼊⼝。
键⼊以下代码:
80代表的是你的端⼝号,然后在终端或者cms输⼊node index.js,在浏览器⾥打开localhost就可以看到了,或者127.0.0.1也⾏,如果是别的端⼝号需要加上端⼝号,当然现在是什么也没有,因为我们还没有写接⼝。
接下来我们写⼀个get接⼝,返回⼀个‘hello world’字符串
res.json这个⽅法是以json对象的形式返回去,还有以下⽅法
mysql下载后为什么不是一个安装包res.send以页⾯的⽅式返回去
res.download以⽂件的⽅式返回去,前端请求会下载此⽂件
别的⽅法这⾥就不在⼀⼀阐明了,可以打出res.然后使⽤vscode的语法提醒查看下⾯的⽅法即可,或者查看⽂档看解释。
接下来我们返回⼀个页⾯:
可以看到localhost页⾯上出现了我们预期的结果
到了这⾥想必你们已经发现问题了,我每次改动⼀下都要重新跑程序,这不符合⼈体⼯程学,说的⼀点没错,我⽆法容忍,你萌呢?想必你们在前⾯也发现了pageage.json⾥有这么⼀句话
scripts的作⽤就是⾃⼰定义脚本命令,在这下⾯定义的所有命令都可以使⽤npm run xxx来运⾏,可以省略run。⾥⾯运⾏的应该是node index.js才对,但是这⾥我们使⽤了⼀个插件,hotnode,这个插件可以让你的node程序热更新,要全局安装这个插件,不然不到命令。
npm install -g hotnode
然后我们就可以npm start运⾏我们的程序了,所有基于node的程序跑起来都是两步,npm install,安装所有插件,npm start运⾏程序,如果跑不起来,那么这个项⽬⼀定不是⼀个好项⽬,我通常如此告诫我的弟⼦,我们⼀定要站在巨⼈的肩上。
做到这⾥,我们接下来就可以愉快的开发了。
接下来我们试试post⽅法
post不⽀持浏览器直接访问,这个时候要⽤postman软件
依然符合我们的预期。
可以把路径改为/login,/test进⾏尝试,这⾥就不再演⽰了。
也可以试试app.all⽅法,这个⽅法⽀持所有请求⽅式,不必每个请求都写好⼏遍了。
想必⼤家已经想到了,我要做登录拦截难道每个接⼝⾥都要写⼀遍吗。
答案是当然不⽤的,接⼝的第⼀个参数可以⽤正则表达,我们这么写:
我们使⽤*来匹配所有路径,这个时候请求test,会先经过*,被*拦截返回了***,
我们可以在内部判断来进⾏操作:
如果未登录,返回未登录,否则,继续向下匹配,回调函数接收三个参数,最后⼀个是next,继续向下执⾏,*路径⼀定要写在最上⾯,不然会先被test捕捉到,test没有执⾏next,*就会捕捉不到请求。
这时候就可以设置login的值来看路径localhost/test下的返回值了。
那么有参数的情况呢,我们先引⼊⼀下中间件,如果没有安装可以先npm安装
接下来我们请求⼀下
后⾯的表单参数会放到req.query⾥,路径上的参数会放到req.params⾥,json参数会放到req.body⾥,可以任意选择⼀种参数传递即可,路径以:开头表⽰此路径作为参数的意思。
前后端联调的时候经常碰到跨域的问题,我们可以使⽤cors插件解决,
以上提到的跨域和参数都可以⾃⼰进⾏处理,利⽤路径⾃⼰提取参数,在*路径的请求的请求体req⾥⾃⼰加上跨域允许的header,但我希望你们可以使⽤插件,保证代码的简洁性,同时
我经常告诉我的弟⼦,我们⼀定要站在巨⼈的肩上。
好了,接下来我们开始连接数据库,从数据库⾥拿⼀条数据出来返回给前端。
引⼊mysql插件,我们先在mysql⾥新建⼀个表students,存⼊以下数据:
然后使⽤mysql插件连接数据库

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。