Node.js基础
1.首先安装配置node环境
2.使用node搭建项目
a.创建一个空文件目录,创建一个app.js
b.当前文件目录命令行输入:npm init,创建package.json文件
c.下载需要使用的库
express库:cnpm install express -s
mysql库:cnpm install mysql -s
router库:cnpm install router -s
d.创建对应的目录(分层):
routers:路由拦截层
controller:控制层
config:配置文件层
dao:数据持久层
app.js:服务启动文件
3.服务启动
在app.js中引入express库
创建一个express对象,调用express对象的listen方法启动服务
这时服务就启动了,但是是访问不了的,因为没有设置路由拦截
4.路由的配置
我们需要前端能够访问我们的服务,就需要做路由拦截
在routers目录下创建一个路由文件
文件中引入express库
调用express.Router()方法来获取一个路由对象
调用路由对象的get或者post方法来拦截前端的请求
最后将路由对象公开
5.控制器的配置
我们能清楚看到路由拦截到请求后会做一些事情,那么这些事情是由路由来分发给不同的控制器,不同的控制器再来处理不同的业务逻辑
在controller目录中创建一个控制器
我们直接在控制器中公开一个类,在类里面创建我们需要的方法,方法会携带两个参数,req和res
控制器首先需要获取前端请求是给我们传过来的参数,如何获取参数呢
如果get请求:则直接调用req.query来获取
如果是post请求,则需要下载post解析库:cnpm install body-parser -s,下载完成之后在app.js中引入
此时我们就可以在控制器的方法中通过 req.body来获取post请求中传过来的参数了
当我们在控制器的方法中获取的参数,那么就可以对数据库进行操作,操作完成后再来处理一些事情
6.数据持久层
我们需要操作数据库,那么就需要连接数据库,如果每访问一次请求就创建一次连接,那么非常消耗数据库性能,所以这里需要把数据库的连接封装成一个连接池
首先在config目录下创建一个数据库连接池,该文件只对数据库进行连接
文件中引入mysql库,创建一个连接配置对象,填入所需的域名,端口,用户名,密码和要连接的数据库
创建一个连接池对象,该对象中有一个连接配置对象,创建连接方法和一个连接方法
创建好连接池后我们就可以连接数据库了,让我们回到数据持久层,在dao目录下创建一个文件(该文件只做一件事情,就是对数据库进行操作)
此时我们公开一个类,类中可以创建我们需要对数据库进行操作的各种方法(例如对人员表的增删改查等)
我们在方法中创建对应的sql语句,将sql语句,控制器传过来的值,回调函数一起传给连接池的连接方法
这里我们就写好了一个完整的服务请求
7.最后我们来梳理下逻辑
第一步:我们在app.js中引入express库,利用express库来创建服务,同时引入路由和post解析库
第二步:我们通过postmen发送了一个post请求
第三步:路由拦截到请求后,将任务分发给对应的控制器
第四步:控制器中附带两个参数,通过req来获取前端传入的值,然后将值和回调函数传给对应的dao
第五步:dao拿到传过来的值和回调函数后将拼接一条sql,调用数据库连接池的连接方法,将拼接好的sql,传递的值,回调函数一起传给连接池
第六步:连接池首先要对数据库进行连接,在连接没有出错的情况下,通过连接池中连接对象的query方法将dao那边传过来的值注入到sql中并执行sql,执行完sql后执行回调函数然后清空连接池
第七步:连接池那边对数据库操作完后会执行一个回调函数,该回调函数就将数据库那边的数据返回给了dao,dao拿到数据后再把数据返回给控制器
当控制器拿到数据后就可以给前端发送对应的信息了