node.js之koa框架搭配mongodb数据库使用

这里完成一个简单的用户注册的小demo 前台用户给后台提交一个 userName 和password  字段 

前端访问的是路由   /user/registUser   请求方式 post

后端使用的是 koa和mongodb数据库  (需要 有koa和mongodb的知识)

首先在桌面上新建立一个空的shop文件夹

npm init -y  创建一个项目初始化package.json文件

开始之前还是先把环境装好

    "glob":      // 用于 将 mongoose定义的model 规范的文件 导出
    "koa":      
    "koa-bodyparser" ,   // 中间件 快速 取出post请求中的参数  
    "koa-router":     //  用于设置路由
    "koa2-cors":   // 设置跨域问题
    "mongoose":    //  mongodb数据连接需要

cnpm   i   上述插件包   -S

1.建立数据库连接 文件 shop/init.js

const mongoose=require('mongoose');

// 引入 schma
const glob=require('glob');
const path=require('path')

exports.initSchemas=()=>{
    glob.sync(path.resolve(__dirname,'./model','*.js')).forEach(require); // 将model下的js文件 都导入
}
exports.connect=()=>{
    mongoose.connect("mongodb://localhost/shop",{ useNewUrlParser: true,useUnifiedTopology: true } )   // 连接数据库

    // 连接的时候
    mongoose.connection.once('open',()=>{
        console.log('连接成功!');
    })
}

2.创建 mongodb 数据库 集合的规范 数据库中的数据将按照下面的规范进行存储数据    shop/model/User.js

const mongoose=require('mongoose');
const Schema=mongoose.Schema;
// 定义集合中每一个字段的规则
const userSchema=new Schema({
    userId:Schema.Types.ObjectId,
    userName:{unique:true,type:String},// 设置用户名唯一的
    password:String,
    createDate:{type:Date,default:Date.now()}
})

mongoose.model('User', userSchema);   //发布模型

3.创建服务器文件   shop/index.js

const Koa=require('koa');
const app=new Koa();
const cors=require('koa2-cors');
// 配置跨域
app.use(cors({
    origin:['http://localhost:8080'],
    credential:true
}))
// 加载路由
const Router=require('koa-router');
let user=require('./controller/user.js');
// 接受前端请求
const  bodyParser=require('koa-bodyparser');
app.use(bodyParser());  // 注册

let router=new Router();
router.use('/user',user.routes()); // 注册 user下的路由

app.use(router.routes());
app.use(router.allowedMethods()) // 只允许发送 我设置的请求 如:get  post
// 引入 schema
const { connect,initSchemas } =require('./init.js');

(async ()=>{
   await connect();    // 先连接 再初始化 mongodb 保证先后顺序
   initSchemas()
})()

app.listen(3000,()=>{
    console.log('服务器开启成功!');
})

4.创建路由文件  shop/controller/user.js

const Router=require('koa-router');
let router=new Router();

const mongoose=require('mongoose');

router.post('/registUser',async (ctx)=>{
    const User=mongoose.model('User');

    let newUser=new User(ctx.request.body);

    await newUser.save().then(()=>{
        console.log('保存成功!')
        ctx.body={
            code:200,
            msg:'注册成功!'
        }
    }).catch(err=>{
        console.log(err);
        ctx.body={
            code:500,
            msg:err
        }
    })
})

module.exports=router;

然后就是打开命令行 运行 node  index.js 服务器文件 

发布了153 篇原创文章 · 获赞 64 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yunchong_zhao/article/details/104283829