Koa快速安装开始
// 初始化package.json
npm init
// 安装koa
npm install koa
// 安装koa-router
npm install koa-router
// 安装koa-body
npm install koa-body //解析request.body
//安装 nodemon
npm install -g nodemon
新建一个app.js
const Koa = require("koa")
const Router = require("koa-router")
const koabody = require("koa-body")
// 实例化app
const app = new Koa()
const router = new Router()
router.get("/", ctx => {
ctx.body = "1111"
})
app.use(koabody())
app.use(router.routes()).use(router.allowedMethods())
app.listen(2000, () => {
console.log("正在监听端口号");
})
在package.json里面创建server,并直接运行
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"server":"nodemon app.js"
},
远程链接mongodb数据库
//安装 mongoose
npm install mongoose
新建一个文件夹config的Key.js 里面写mongodb的钥密
module.exports = {
Url: "//钥密"
}
app.js
const mongoose = require("mongoose")
const url = require("./config/key").Url
// 链接数据库
mongoose.connect(url, { useNewUrlParser: true })
.then(() => {
console.log("mongoose链接成功");
})
.catch(err => {
console.log('连接错误' + err);
})
//终端会显示是否连接上
新建一个router文件夹的users.js
const Router = require("koa-router")
const router = new Router()
router.get("/text", async ctx => {
ctx.status = 200
ctx.body = { msg: "text" }
})
module.exports = router.routes()
app.js
const users = require("./router/users")
router.use("/api", users)
app.use(router.routes()).use(router.allowedMethods())
新建models
const mongoose = require("mongoose")
const Schema = mongoose.Schema
// 实例化一个数据模板
const template = new Schema({
name: { type: String, required: true },
sex: { type: String, required: true },
data: { type: String, required: true },
})
module.exports = mongoose.model("user", template)
/router/users.js
const Router = require("koa-router")
const router = new Router()
const User = require("../models/User") //引入models/user
router.get("/text", async ctx => {
ctx.status = 200
ctx.body = { msg: "text" }
})
// 存储到数据库
router.post("/reg", async ctx => {
ctx.body = ctx.request.body;
const finds = await User.find({ name: ctx.request.body.name })
if (finds.length > 0) {
ctx.body = { msg: "用户已存在" }
} else {
const newUser = new User({
name: ctx.request.body.name,
sex: ctx.request.body.sex,
data: ctx.request.body.data
})
await newUser.save().then(res => {
ctx.body = newUser
}).catch(err => {
console.log(err);
})
}
})
module.exports = router.routes()