流程
一 node.js连接mongoDB数据库
yarn init -y 生成package.json
修改package.json
"scripts": {
"start": "nodemon index.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
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文件
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