流程

一 node.js连接mongoDB数据库

  1. yarn init -y 生成package.json

修改package.json

"scripts": {
    "start": "nodemon index.js"      监听
  }

新建Indx.js作为入口文件

一、安装依赖模块

yarn add mongoose koa koa-router art-template koa-art-template

二、mongoose连接数据

1.导入mongooose

新建一个文件夹models 新建一个js文件 本例中是db.js

const mongoose = require('mongoose');

2.连接数据库
db.js

mongoose.connect( 'mongodb://127.0.0.1:27017/student', {useNewUrlParser: true},(err)=>{
    if(err){throw err};
    console.log("数据库连接成功")
});
module.exports = mongoose;  //student 是库名 是什么库名就改成什么

3.定义Schema和数据库中的表映射
在models文件夹下新建一个与表名相同的js文件

var AdminSchema = mongoose.Schema({
    name:String,
    age:Number
})
var Homeone = mongoose.model('Homeone',AdminSchema,'homeone');
module.exports = Homeone;  homeone是表名

4.定义模型,关联数据库中的表

var Homeone = mongoose.model('Homeone',AdminSchema,'homeone');

5.查询数据库

Admin.find({}).then(res=>{
    console.log(res)
})

三、分拆mongoose

流程 - 图1
db.js

const mongoose = require('mongoose');
mongoose.connect( 'mongodb://127.0.0.1:27017/student', {useNewUrlParser: true},(err)=>{
    if(err){throw err};
    console.log("数据库连接成功")
});
module.exports = mongoose;

admin.js

const mongoose =require('./db');
var AdminSchema  = mongoose.Schema({
    name:String,
    age:Number
})
var Admin = mongoose.model('Admin',AdminSchema,'admin');
module.exports = Admin;

四、分拆路由
新建一个routers文件夹 新建一个index.js文件
流程 - 图2
routers/index.js

const Router = require('koa-router');
const router = new Router();
const AdminModel = require('../models/admin')
router.get('/api',async ctx=>{
    var data = await AdminModel.find({})
    ctx.body = data
})
router.get('/admin',async ctx=>{
    await ctx.render('index')
})
module.exports = router

index.js

const router = require('./routers')

五、解析post提交的数据

yarn add koa-bodyparser
//index.js

const koa = require('koa');
const app = new koa();
const router = require('./routers')
const render = require("koa-art-template");
const path = require('path');
const bodyParser = require('koa-bodyparser');
render(app, {
    root: path.join(__dirname, 'views'),
    extname: '.html',
    debug: process.env.NODE_ENV !== 'production'
});
app.use(bodyParser())
app.use(router.routes())
app.listen(8080)

5-1 post-from提交数据
//id,name,age


编辑页面