34343432423424一、配置相关
1、打开终端输入
sudo npm install -g koa-generator
mac 一定要加sudo 不然提示没权限
2、创建项目
koa2 project
3、cd project 进入安装依赖
npm install
4、安装需要的组件
npm i jsonwebtoken koa-jwt koa-mysql-session koa-session-minimal koa2-cors md5 moment mysql save --save
5、安装sequelize来配置一下数据库
npm install sequelize --save
6、新建config文件夹用于存放数据库连接
const config = {
port: 3000,
database: {
DATABASE: 'xxx', //数据库
USERNAME: 'root', //用户
PASSWORD: 'xxx', //密码
PORT: '3306', //端口
HOST: '121212' //服务ip地址
},
secret: 'jwt_secret'
}
module.exports = config
7、将sequelize链接到MySQL数据库,并配置一些数据库的参数 sequelize 可以自动生成表到mysql
const Sequelize = require('sequelize')const {dbName, user, password, host, port} = require('./config').database// 第一个参数:链接数据库的数据库名// 第二个参数: 数据库的账号// 第三个参数: 账号密码// 第四个参数:一个js对象(因为里面的参数非常多)// 注意我们应该把参数写在配置文件config.js中const sequelize = new Sequelize(dbName, user, password, { dialect: 'mysql', // 指定数据库的类型,需要先安装mysql2 host, port, logging:true, //默认值为true,是否在控制台中显示具体的mysql操作 timezone: '+08:00', //一定要这么设置才能按照北京时间来记录时间相关的数据 // timestamps: false 设置为false就不会生成createdAt和updatedAt这两个字段了 // 我们最好还是设置为true // paranoid设置为true,添加字段deletedAt // deletedAt,updatedAt,createdAt设置默认属性的名字 // underscored设置为true,将所有的驼峰命名的字段名称转换为以下划线链接的字段名称 define: { timestamps: true, paranoid: true, createdAt: 'created_at', updatedAt: 'updated_at', deletedAt: 'deleted_at', underscored: true }})// force: true 当我们添加字段的时候数据库会自动删除原先的表格并更新字段,开发阶段可以设置为true// 注意在生产环境下千万不要将其设置为true,它会把所有的记录都删除掉// 所以我们还是设置为false比较安全,添加字段,我们还是手动删除原先的表格然后刷新加载比较好sequelize.sync({ force: true})module.exports = { sequelize}
8、npm run start 运行 打开http://localhost:3000 成功会出现
Hello Koa 2!
9、改造router不用一个个去app.js 注册路由这样我们直接遍历注册就可以 直接替换一下代码
index.js
const fs = require('fs');module.exports = (app) => { fs.readdirSync(__dirname).forEach(file => { if (file === 'index.js') { return; } const route = require(`./${file}`); app.use(route.routes()).use(route.allowedMethods()); });}
app.js 引入routes
const routing = require('./routes');
routing(app);
10、创建控制层 新建controller文件夹 新建一个users.js
class UserCtl{ index(ctx){ ctx.body = '用户列表' }}module.exports = new UserCtl();
11、改造一下routers 的users 路由require 引入刚才创建的users修改router.get请求方法
const Router = require('koa-router');const router = new Router()const {index } = require('../controller/users')router.get('/', index)module.exports = router;
12、重新跑项目列表会看到显示用户列表
补:
可以安装一下nodemon 这样每次修改完成接口就不用重启接口
cnpm i nodemon
需要修改一下package.json
start 一开始应该是node 这里改成nodemon 就好
"scripts": { "start": "nodemon bin/www", "dev": "./node_modules/.bin/nodemon bin/www", "prd": "pm2 start bin/www", "test": "echo \"Error: no test specified\" && exit 1" },
然后使用 npm run start 跑一下项目