v8.1.0
v2.3.0
v5.7.0
文中用到了promise、async await等语法,所以你需要一点es6的语法,传送门当然是阮老师的教程了http://es6.ruanyifeng.com/
如果你已经配置好node和mysql可以跳过
|
|
下载mysql,并设置好用户名和密码,默认可以为用户名:root,密码:123456
|
|
然后开启mysql
|
|
输入密码之后创建database
(数据库),nodesql
是我们创建的数据库
|
|
记住sql语句后面一定要跟;
符号,接下来看看我们创建好的数据库列表
|
|
启用创建的数据库
|
|
查看数据库中的表
|
|
显示Empty set (0.00 sec)
,因为我们还没有建表,稍后会用代码建表
注释:
这是后面建表之后的状态
首先我们创建koa2-blog文件夹,然后cd koa2-blog
|
|
接着安装包,安装之前我们使用cnpm安装
|
|
|
|
各模块用处
koa node
框架koa-bodyparser
表单解析中间件koa-mysql-session
、koa-session-minimal
处理数据库的中间件koa-router
路由中间件koa-static
静态资源加载中间件ejs
模板引擎md5
密码加密moment
时间中间件mysql
数据库koa-views
模板呈现中间件在文件夹里面新建所需文件
我们新建default.js
文件
|
|
这是我们所需的一些字段,包括端口和数据库连接所需,最后我们把它exports暴露出去,以便可以在别的地方使用
index.js
|
|
我们使用koa-session-minimal``koa-mysql-session
来进行数据库的操作
使用koa-static
配置静态资源,目录设置为public
使用ejs
模板引擎
使用koa-bodyparser
来解析提交的表单信息
使用koa-router
做路由
之前我们配置了default.js,我们就可以在这里使用了
首先引入进来 var config = require(‘./config/default.js’);
然后在数据库的操作的时候,如config.database.USERNAME,得到的就是root。
如果你觉得这篇文章帮助到了你,那就赏脸给个star吧,https://github.com/wclimb/Koa2-blog
关于数据库的使用这里介绍一下,首先我们建立了数据库的连接池,以便后面的操作都可以使用到,我们创建了一个函数query
,通过返回promise的方式以便可以方便用.then()
来获取数据库返回的数据,然后我们定义了三个表的字段,通过createTable
来创建我们后面所需的三个表,包括posts(存储文章),users(存储用户),comment(存储评论),create table if not exists users()表示如果users表不存在则创建该表,避免每次重复建表报错的情况。后面我们定义了一系列的方法,最后把他们exports暴露出去。
这里只介绍注册用户insertData,后续的可以自行查看,都差不多
|
|
我们写了一个_sql的sql语句,意思是插入到users的表中(在这之前我们已经建立了users表)然后要插入的数据分别是name和pass,就是用户名和密码,后面values(?,?)意思很简单,你有几个值就写几个问号,最后调用query
函数把sql语句传进去
lib/mysql.js
|
|
下面是我们建的表
users | posts | comment |
---|---|---|
id | id | id |
name | name | name |
pass | title | content |
content | postid | |
uid | ||
moment | ||
comments | ||
pv |
现在感觉有点枯燥,那我们先来实现一下注册吧
routers/singup.js
|
|
使用get方式得到’/signup’页面,然后渲染signup模板,这里我们还没有在写signup.ejs
views/signup.ejs
|
|
我们先安装supervisor
|
|
supervisor的作用是会监听文件的变化,而我们修改文件之后不必去重启程序
|
|
现在访问 localhost:3000/signup 看看效果吧。注意数据库一定要是开启的状态,不能关闭
首先我们来完善一下样式吧,稍微美化一下
public/index.css
|
|
我们再把模板引擎的header和footer独立出来
/views/header.ejs
顺便引入index.css和jq
|
|
/views/footer.ejs
|
|