1、npm 初始化
npm init -y
- 生成
package.json
文件,记录项目的依赖
2、git 初始化
git init
- 生成
.git
隐藏文件夹,.git 的本地仓库 - 创建
.gitignore
文件,添加不提交文件的名称
3、创建 ReadMe.md 文件
4、搭建项目
npm install koa
5、编写最基本的 app
- 在项目根目录创建
src
文件夹,并文件夹中创建 main.js
文件,文件内容如下:
const Koa = require("koa");
const post = 3000;
const app = new Koa();
app.use((ctx, next) => {
ctx.body = "hello world";
});
app.listen(post, () => {
console.log("server is running on http://localhost:3000");
});
node src/main.js
6、自动重启服务
npm install nodemon
- 修改项目启动脚本
- 修改
package.json
文件中的 scripts
节点,添加如下代码:
"scripts":{
"serve":"nodemon ./src/main.js"
}
npm run serve
7、读取配置文件
- 安装
dotenv
,读取根目录中的 .env
文件,将配置写 process.env
中
npm install dotenv
- 在项目根目录下创建
.env
的配置文件,代码如下:
APP_PORT = 8000;
- 在项目根目录
src
下创建 config
文件夹,并文件夹中创建 config.default.js
文件,内容如下:
const dotenv = require("dotenv");
dotenv.config();
module.exports = process.env;
const Koa = require("koa");
const { APP_PORT } = require("./config/config.default");
const app = new Koa();
app.use((ctx, next) => {
ctx.body = "hello api";
});
app.listen(APP_PORT, () => {
console.log(`server is running on http://localhost:${APP_PORT}`);
});
8、添加路由
- 路由:根据不同的 URL ,调用对应处理函数
- 安装
koa-router
npm install @koa/router
- 步骤
const Router = require('@koa/router')
const indexRouter = new Router()
indexRouter.get('/', (ctx, next) => {
ctx.body = 'hello index'
})
app.use(indexRouter.routes())
9、目录结构优化
-
将 http
服务和 app
业务拆分
- 在项目根目录下
src
目录下创建 app
文件夹,并创建 index.js
文件(管理业务相关的文件),内容如下:
const Koa = require('koa')
const app = new Koa()
const userRouter = require('../routers/userRoute')
app.use(userRouter.routes())
module.exports = app
const { APP_PORT } = require('./config/config.default')
const app = require('./app')
app.listen(APP_PORT, () => {
console.log(`server is running on http://localhost:${APP_PORT}`);
})
-
将路由和控制器拆分
- 路由:解析 URL ,分布给控制器对应的方法
- 控制器:处理不同的业务
- 在项目根目录下
src
目录中创建 controller
文件夹,并创建 user.controller.js
文件,内容如下:
class UserController {
async register(ctx, next) {
ctx.body = "用户注册接口"
}
async login(ctx, next) {
ctx.body = "用户登录接口"
}
}
module.exports = new UserController()
- 在
userRouter.js
文件中引入 user.controller.js
文件,内容如下:
const Router = require('@koa/router')
const { register, login } = require('../controller/user.controller')
const router = new Router({ prefix: '/users' })
router.post('/register', register)
router.post('/login', login)
module.exports = router
http://localhost:8000/users/login