五分钟带你利用 nodejs koa框架搭建后端开发环境
项目初始化
执行两条命令。
npm init -y
npm install koa
目录结构
初始化完后,先自己手动创建以下目录
启动项目
有些东西需要写入到环境变量
我安装了 dotenv
npm install dotenv
main.js文件中的内容
// main.js
const app = require('./app')
const config = require('./app/config')
app.listen(config.APP_PORT, () => {
console.log(`服务器在${config.APP_PORT}启动成功~`)
})
app/index.js中的内容
// 入口文件
// app/index.js
const Koa = require("koa")
const app = new Koa()
module.exports = app
处理环境变量,把变量写入到环境中
// config.js
const dotenv = require("dotenv")
dotenv.config()
module.exports = {
APP_PORT
} = process.env
.env文件
APP_PORT=8000
使用热更新
方便开发 通过 ctrl + s
就能更新内容
安装 nodemon
npm install nodemon -D
用nodemon启动项目,在package.json中添加脚本
"start": "nodemon ./src/main.js"
执行npm start
命令,项目就启动成功啦!
写一个简单的接口
我需要用到 koa-router
来帮我管理路由
npm install koa-router
1.在router文件夹中创建user.router.js文件
const Router = require("koa-router") // 引入依赖
const userRouter = new Router({ prefix: "/user" }) // 设置接口前缀
const { create } = require('../controller/user.controller') // 引入中间件
userRouter.get('/', create) // 设置接口路径,以及中间件
module.exports = userRouter // 导出
2.在controller文件夹中创建与router对应的文件user.controller.js
class UserController { // 创建类
async create (ctx, next) { // 中间件
console.log("请求成功")
ctx.body = "请求成功" // 请求响应
}
}
module.exports = new UserController()
3.接口的路径和处理逻辑已经写好,接下来就是加载路由了 在app文件夹的index.js文件中加载(第一种方法)
const Koa = require('koa')
const userRouter = require('../router/user.router') // 引入路由
const app = new Koa()
// 1.加载路由的第一种方法
app.use(userRouter.routes()) // 加载路由
app.use(userRouter.allowedMethods()) // 请求方法验证
module.exports = app
4.上面这种方法明显有个缺陷,一个项目会接口可能有几十个或者上百个,每个接口都要写上两行代码的话,这代码量就会很多,所以,接下来就用另一种方法来加载路由
在router文件夹下创建index.js文件专门用来加载路由
将会用文件遍历的方法来加载每一个路由
const fs = require('fs')
const useRoutes = (app) => {
fs.readdirSync(__dirname).forEach(file => {
if (file === 'index.js') return // index.js文件不需要
const router = require(`./${file}`)
app.use(router.routes())
app.use(router.allowedMethods())
})
}
module.exports = useRoutes
采用这种方法,可以有效减少代码量,而且不用再自己手动去加载路由了 接下来只要在入口文件index.js中引入这个文件即可
const Koa = require("koa")
const app = new Koa()
const useRoutes = require('../router') // 引入router下的index.js文件
useRoutes(app) // 向这个路由加载文件传入app
module.exports = app
5.测试接口
很好,一个简单的接口就完成了!
写在最后
至此,文章就分享完毕了,欢迎在评论区交流。 如果文章对你有所帮助,不要忘了点上宝贵的一赞! 听说点赞的人运气都不差,相信来年第一个升职加薪的一定是你~
转载自:https://juejin.cn/post/7091309467869921288