Koa2轻量级服务器搭建

1插件安装

koa2 

npm init -y   初始化项目
npm install Koa   轻量级服务器

 

nodemon   自动重启

npm install nodemon    文件更新自动重启

// package.json文件启动 指定指令 npm run dev
 "scripts": {
    "dev":"nodemon ./src/main.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

 

dotenv   环境配置

npm i dotenv   区分服务器环境 执行.env文件


.env文件
APP_PORT =3000

config.defualt.js文件
const dotenv = require('dotenv');
dotenv.config();
console.log(process.env.APP_PORT);
module.exports = process.env;

main.js文件导入
const {APP_PORT} = require('./config/config.defualt')


----

全局使用 process.env.APP_PORT

 koa-router  路由

npm i koa-router  //路由

main.js文件
const Koa = require("koa")
const router = require('./router/index.router')
const app = new Koa()
app.use(router.routes())   //使用router

index.router.js   动态加载路由文件

const Router = require('koa-router');
const path = require('path');
const fs = require('fs');

const router = new Router({prefix:'/api'});

// 动态加载路由文件
const routeFiles = fs.readdirSync(path.resolve(__dirname));
routeFiles.forEach((file) => {
  console.log(file);
  
  if (file !== 'index.router.js') {
    const routeModule = require(`./${file}`);
    router.use(routeModule.routes(), routeModule.allowedMethods());
  }
});

module.exports = router;

user.router.js

const Router = require('koa-router')

router = new Router({prefix:'/user'});   //{prefix:'/user'}  加前缀

router.get('/',(ctx,next) => {
    ctx.body = "user hello I Am koa-router"
});

module.exports = router;

koa-body 请求数据的解析

npm i koa-body

sequelize ORM数据库工具  和 mysql2

npm install --save sequelize mysql2

seq.js

const { Sequelize } = require('sequelize');
const {
    MYSQL_HOST,
    MYSQL_PORT,
    MYSQL_USER,
    MYSQL_WP ,
    MYSQL_DB,
} = require('./../config/config.defualt')

// Option 3: Passing parameters separately (other dialects)
const sequelize = new Sequelize(MYSQL_DB, MYSQL_USER, MYSQL_WP, {
  host: MYSQL_HOST,
  dialect: 'mysql'
});

try {
    sequelize.authenticate();
    console.log('成功链接数据库');
} catch (error) {
    console.error('数据库链接失败:', error); 
}


module.exports = sequelize

user.model.js 表

const {DataTypes} = require('sequelize');
const seq = require('./../db/seq');

//定义模型对向 
const User = seq.define("User",{
    // ID会被自动创建
    user_name:{
        type:DataTypes.STRING,
        allowNull:false,
        unique:true,
        comment:"用户名,唯一"
    },
    password:{
        type:DataTypes.CHAR(64),
        allowNull:false,
        comment:"密码"
    },
    is_admin:{
        type:DataTypes.BOOLEAN,
        allowNull:false,
        defaultValue:0,
        comment:"是否是管理员:0不是 1是"
    }
})

User.sync({
    force:true     //强制删除 重新创建
})
 
module.exports = User

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值