gistfile1.txt 使用koa2框架,基于注册登录功能简单的介绍了mongodb的使用一、首先我们先看下目录结构 目录结构 1、在mongo目录下有个app.js文件(入口文件) 2、然后views是模板文件目录 3、p
使用koa2框架,基于注册登录功能简单的介绍了mongodb的使用 一、首先我们先看下目录结构 目录结构 1、在mongo目录下有个app.js文件(入口文件) 2、然后views是模板文件目录 3、package.json 这个就不必多说了大家都了解 二、在node中使用mongodb,首先要先安装好nodejs和mongodb,window下启动mongodb可能会遇到一些问题,可以参考:启动mongodb遇到的一些问题三、然后安装各种必须的依赖,下面是app.js的代码,注释已经详细(因为是练习,所以都放在一个文件下),全部代码参考github:代码, //使用koa2 const Koa = require('koa'); //路径处理 var path = require('path'); //接收请求的数据处理 const bodyParser = require('koa-bodyparser'); //路由处理 const Router = require('koa-router'); //加载模板 var views = require('koa-views') //使用之后就可以直接使用了 const app = new Koa(); const router = new Router(); //配置mongodb数据库相关的内容 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/mongo'); //创建模型 var User = mongoose.model('User',{username:String,password:String}); // 配置服务端模板渲染引擎中间件 使用ejs模板 app.use(views(path.join(__dirname, './views'), { map: { html:'ejs' } })) //数据处理模块 app.use(bodyParser()) //首页 router.get('/',async (ctx,next)=>{ ctx.body = 'hello' }) // '/login' get请求去到login页面 router.get('/login',async (ctx,next)=>{ await ctx.render('login') }) //注册页 router.get('/register',async (ctx,next)=>{ await ctx.render('register') }) //注册传过来的数据 router.post('/register',async (ctx,next)=>{ const{username,password} = ctx.request.body //添加数据 if(!username || password){ ctx.body = { code:1, msg:'用户名或者密码不能为空' } } var user = new User({ username: username, password:password }); await user.save(function(err, res) { // 如果错误,打印错误信息 if (err){ ctx.body = { code:1, msg:'err' } } ctx.body = { code:2, msg:'ok' } }) }) //数据查询 router.post('/login',async (ctx,next)=>{ const{username,password} = ctx.request.body await User. find({ username: username }). where('password').equals(password). exec((err,res)=>{ if(err){ console.log(err); }else{ if(res){ ctx.body = { code:2, data:{ username:res[0].username }, msg:'ok' } }else{ ctx.body = { code:1, msg:'err' } } } }); }) //要使用router.routes() 路由才会有效果 app.use(router.routes()) app.listen(3000) 博客地址:http://yxlblog.com