koa 基础篇2323

653 阅读3分钟

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 跑一下项目