因为有了NodeJs使我们前端开发的工作越来越丰富多彩(xin lei),现在前端开发貌似都需要会NodeJs。随着ES6+的,我们可以更优雅的处理回调地狱,下面我将使用Koa2来一步步搭建一个服务端项目
搭建项目目录结构
初始化项目
npm init -y //初始化一个基于npm依赖的项目
安装所需要的依赖
npm install koa koa-router koa-bodyparser mysql2 sequelize nodemon -D
- koa NodeJs框架
- koa-router koa路由中间件
- koa-bodyparser koa解析body体中间件
- mysql2 NodeJs连接操作mysql库
- sequelize Node操作数据库 orm库
- nodemon 用于开发环境下热重启
搭建基础目录结构
.
├── app.js //入口文件
├── conf //配置文件
├── db // 数据库配置和数据模型
├── package.json
├── routes //路由
├── service //数据处理层
└── utils //封装的函数和方法
编写入口文件app.js
const Koa = require('koa')
const app = new Koa() //实例化Koa
const body = require('koa-bodyparser')
const Router = require('koa-router')
const router = new Router() //实例化路由中间件
//使用 koa-bodyparser中间
app.use(body())
//编写第一个路由
router.get('/', ctx => {
ctx.body = 'hello word'
})
//使用路由中间件
app.use(router.routes())
//启动http服务 并在3000端口上运行
app.listen(3000, () => {
console.log('service is running on port 3000')
})
- koa-bodyparser中间件的使用需要放在路由中间件的上面 因为中间件的使用是有顺序的
- ctx 是koa提供的上下文,koa把request和response...等封装进了ctx对象里面
现在一个简单的入口文件和一个简单的路由就编写完成了,现在打开浏览器输入http://127.0.0.1:3000就可以看到hello world了
修改package.json
增加脚本命令
{
"name": "koa-note",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"dev": "NODE_ENV=dev nodemon app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"koa": "^2.11.0",
"koa-bodyparser": "^4.3.0",
"koa-router": "^8.0.8",
"mysql2": "^2.1.0",
"nodemon": "^2.0.3",
"sequelize": "^5.21.5"
}
}
- 现在增加了一条脚本命令dev
- NODE_ENV=dev是添加环境变量 以便于区分是生产环境还是开发环境
- 使用nodemon运行app.js 当我们修改了文件时可以自动重启node服务器