KOA2项目简单搭建
KOA2
文章目录
- KOA2
- 手动搭建 koa2 项目
- 自动重启配置文件
- 添加路由
- 解析 POST 请求参数
- 控制器中的操作步骤
- 拆分 service 层
- 数据库操作 —— sequelize 工具
- 创建实体(数据模型)
- 数据库增删改查 CRUD
手动搭建 koa2 项目
npm init -y
创建 package.json 文件git init
git 初始化- 创建
.gitignore
文件,并将不需要 git 上传的文件放上面,例如node_modules文件夹
- 安装 koa 框架
npm i koa
- 创建 src 目录,以及 app.js 入口文件
- 编写一个最简单的服务器
const Koa = require('koa');
// 实例化koa
const app = new Koa();// app.use()注册中间件
app.use((ctx, next) => {// ctx 是http的上下文,next 放行// ctx.body是返回给前端的内容ctx.body = {};
});app.listen(3000, () => {console.log('端口3000启动了');
});
自动重启配置文件
dotenv 的作用,读取根目录中的 .env
文件,将配置放在 process.env
中
- 安装 dotenv
npm i dotenv
- 在根目录下创建文件
.env
,编写一些环境配置的常量
APP_PORT=8000
- 在
/src/config
文件夹中创建config.default.js
文件
const dotenv = require('dotenv');
dotenv.config();
module.exports = process.env;
添加路由
- 安装路由
npm i koa-router
,并导包 - 实例化路由对象
const Router = require('koa-router');const { API_PREFIX } = require('../config/config.default');
// 路由前缀
const router = new Router({ prefix: API_PREFIX });
- 编写路由
const Router = require('koa-router');const { API_PREFIX } = require('../config/config.default');const User = require('../controller/userController');const router = new Router({ prefix: API_PREFIX });router.post('/user/register', User.register);module.exports = router;
- 注册中间件
const Routes = require('../router');app.use(Routes.routes());
- 编写控制器
路由: 解析 url,分发给控制器对应的方法;
控制器: 处理不同的业务
解析 POST 请求参数
- 安装第三方插件
npm i koa-body
- 引入第三方插件
const { koaBody } = require('koa-body');
- 注册第三方插件
app.use(koaBody());
- 使用解析
// 在控制器中的第一个参数ctx中会有 ctx.request.body 字段就是post请求参数
async register(ctx, next) {console.log(ctx.request.body);ctx.body = ctx.request.body;
}
控制器中的操作步骤
- 获取前端传递的数据
- 操作数据库的到数据库中的数据(service 层)
- 返回结果给前端
拆分 service 层
service 层用于操作数据库
// 操作数据库(增删改查)
class UserService {async createUser({ username, password }) {// 数据库的操作return { username: username + '1', password };}
}// 导出一个新对象
module.exports = new UserService();
数据库操作 —— sequelize 工具
sequelize 是一个 ORM 数据库工具。
ORM 是对象关系映射,将数据表当做对象处理
- 数据表映射(对应)一个类
- 数据表中的数据行(记录)对应一个对象
- 数据表的字段对应对象的属性
- 数据表的操作对应对象的方法
使用:
- 安装第三方插件
npm i sequelize
,同时还要安装驱动程序
// 不同数据库对应不同驱动
npm i pg pg-hstore # PostgreSQL
npm i mysql2 # MySQL
npm i mariadb # MariaDB
npm i sqlite3 # SQLite
npm i tedious # Microsoft SQL Server
npm i ibm_db # DB2
- 连接数据库
const { Sequelize, Model } = require('sequelize');// 实例化 Sequelize
const seq = new Sequelize('数据库名称', '用户名', '密码', {host: '主机地址',dialect: 'mysql', // 数据库类型
});// 测试数据库连接是否成功
try {const res = seq.authenticate();console.log(res);
} catch (err) {console.log(err);
}module.exports = seq;
- 在配置文件
.env
中配置数据库信息
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PWD=123456
MYSQP_DB=sjkmz
- 在
/src/db/seq.js
文件中将配置信息修改
const { Sequelize, Model } = require('sequelize');
const { MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PWD, MYSQP_DB } = require('../config/config.default');
// 实例化 Sequelize
const seq = new Sequelize(MYSQP_DB, MYSQL_USER, MYSQL_PWD, {host: MYSQL_HOST,port: MYSQL_PORT,dialect: 'mysql', // 数据库类型
});// 测试数据库连接是否成功
try {const res = seq.authenticate();console.log(res);
} catch (err) {console.log(err);
}module.exports = seq;
创建实体(数据模型)
使用步骤:
- 创建
model
文件夹存储项目所有的数据模型 - 定义数据模型
// 数据模型(实体)
const { DataTypes } = require('sequelize');
const seq = require('../db/seq');
const User = seq.define('模型名称',{// 会自动创建id// 字段定义/* 字段名: {type:DataTypes.STRING,//定义数类型allowNull: false,// 不能为空unique: true,// 唯一的comment: '用户名,唯一',// 注释defaultValue: '131',// 默认值}*/user_name: {type: DataTypes.STRING,allowNull: false,unique: true,comment: '用户名,唯一',},},{// options的配置timestamps: false, // 不会向每个模型添加 createdAt 和 updatedAt 字段}
);
// User.sync() 如果表不存在,则创建该表(如果已经存在,则不执行任何操作)
// User.sync({ alter: true }) 这将检查数据库中表的当前状态(它具有哪些列,它们的数据类型等),然后在表中进行必要的更改以使其与模型匹配.
// 将创建表,如果表已经存在,则将其首先删除
User.sync({ force: true });module.exports = User;
数据库增删改查 CRUD
// 增
数据表名.create({表中的字段,
});
// 删
数据表名.destroy({});
// 改
数据表名.update({}, {});
// 查
数据表名.findAll(); // 查找数据表中的所有数据的所有字段
数据表名.findAll({attributes: [字段名], // 查找数据表中的所有数据的指定字段where: {}, // 增加查询条件
});
KOA2项目简单搭建相关推荐
- spring-boot项目简单搭建
Spring Boot充分利用了JavaConfig的配置模式以及"约定优于配置"的理念,能够极大的简化基于Spring MVC的Web应用和REST服务开发. 要Spring B ...
- 创建vue项目(一)搭建vue-cli、项目文件介绍、简单配置
记录一下 拉取项目时 npm run dev 报错 输入:npm rebuild node-sass 再重新 npm run dev 如果不能解决,请看这里 一.搭建vue-cli vue creat ...
- 简单搭建一个SSM项目(一)
简单搭建一个用户管理的SSM项目框架,虽然也能用servlet+jdbc搭建更简单的,不过个人感觉工作中更多用的ssm框架项目,这里就简单用ssm来搭建需要的项目吧. 准备工具:eclipse.jdk ...
- vue.js+koa2项目实战(四)搭建koa2服务端
搭建koa2服务端 安装两个版本的koa 一.版本安装 1.安装 koa1 npm install koa -g 注:必须安装到全局 2.安装 koa2 npm install koa@2 -g 二. ...
- Android组件化打造知乎日报系列(一)—— 项目架构搭建
Android组件化打造第三方知乎日报系列(一)-- 项目架构搭建 本节完整代码可以前往github查看,项目地址:github.com/N0tExpectEr- Android组件化打造知乎日报系列 ...
- (三) Angular2项目框架搭建心得
前言: 在哪看到过angular程序员被React程序员鄙视,略显尴尬,确实Angular挺值得被调侃的,在1.*版本存在的几个性能问题,性能优化的"潜规则"贼多,以及从1.*到2 ...
- 从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储+服务+抽象接口模式...
前言 1.@LearningCoding 小伙伴关于用Sqlsugar在mysql数据库上的研究成果: sqlsugarcore支持mysql等数据库,在DbContext里面只需要设置dbtype为 ...
- 基于Node的Koa2项目从创建到打包到云服务器指南
一 创建koa2项目 二 放到云服务器 一 创建koa2项目 为了节省开发成本,本文采用koa-generator脚手架来创建koa2项目 首先npm安装脚手架 $ npm install -g ko ...
- linux基本项目环境搭建
文章目录 linux基本项目环境搭建 java环境搭建 获取java源码包 解压 配置环境变量 使配置文件生效 验证 nginx安装 下载(java也可用此方法下载) 解压 配置(configure) ...
最新文章
- Tomcat 调优及 JVM 参数优化
- matlab 变参数 方程组,解带参数方程组 运行结果竟然自己带了新参数z
- 台达s1变频器参数表_各大品牌变频器万能密码汇总
- 列出最少8种开源软件_您的公司可以支持和维持开源的8种方式
- linux中删除mysql用户_linux系统下mysql添加用户、删除用户、授权、修改密码等sql命令使用...
- 如何将div与页面的中间(水平/宽度)对齐[重复]
- 程序员为什么热衷造轮子?
- LAMP_PHP配置
- flinkTime与Window入门详解
- python爬虫爬取网页图片存储本地_Python爬虫抓取糗百的图片,并存储在本地文件夹...
- 使用bilibili开源的flvjs实现摄像头rtsp视频直播
- win10如何共享打印机_局域网内,办公室USB接口打印机如何共享
- xyoj 6042:让人头疼的“双十一”
- WCF 项目应用连载[6] - 升级Lig服务 - 设计ILigger 构建一个完善的Lig版本
- 香帅的北大金融学课笔记8 -- 债务与债券
- 【译】「食人的大鹫」的运动方法 程序动画技术
- 误删桌面文件如何恢复?
- 配电房轨道式智能巡视机器人_HT-TSX-600-配电房轨道机器人视频巡检系统
- 本地调试(local debug)Hive源码
- 富民银行java开发_富民银行富多利怎么样?从三个方面来看