实践分前端部分和最重要的node服务器部分。在这里将重点放在nodeJS的代码上。
想要成为服务器,就需要能够处理网络请求(http)和对数据库的数据作处理。在这次实践中,node服务器端主要用到以下技术:
koa2(处理http请求)、Sequelize(对数据库进行映射,即用来对数据库数据增删改查)、 nunjucks(处理页面)、mysql。
gitee地址:wx-front-with-server: node 前后端实践,,,可先download下来,按README.md运行一下。
最后的服务器文件夹结构如下:

前言:跟着廖雪峰老师学习,一些思想和图片来自https://www.liaoxuefeng.com。
1.首先看app.js入口文件

可以发现app.js代码很少,http的获取和路由注册都由2中的app.use(routerController().routes())来完成。这是因为其中进行了自动化加载。
先来看看一般我们的操作为:

为了避免越来越多的请求处理会污染入口文件。我们将router处理都写在router文件夹下。
如:router/indexRoute.js

在这里,请求对应的处理我又统一归在了controller文件夹下:
/controller/indexController.js

文件细分出来了,如何再加载到app.js呢。看router.js文件:

最后在app.js中引入router.js,并用app.use(routerController().routes())实现注册。
*Nunjucks:主要是在templating.js文件中

app.js 中 , 使用 app.use(templating('views',{}));注册“views”文件夹下的模板输出文件。
在路由中可用于模板的跳转和内容传递,如:ctx.render('index.html',{ data:data });跳转到index.html页面,且可使用data数据。
关于Nunjucks,看下 https://www.liaoxuefeng.com/wiki/1022910821149312/1100400176397024,比较简单。
完成koa的部分,我们已经可以根据不同的访问请求如:localhost:3000/ 或 localhost:3000/getAll ,或者提交post请求 /add来获得服务器不同的跳转和反馈。
网友评论