node.js +mongdb实现登录功能


Posted in Javascript onJune 18, 2020

一、开发环境准备

npm init -y //初始化仓库
npm i koa koa-router -S //安装koa和路由模块
npm i nodemon -S

二、开启node服务

//index.js
const koa = require("koa");
const router = require("koa-router")();
const app = new koa();
router.get("/",async ctx=>{
 ctx.body = "我是首页"
})
app.use(router.routes());
app.listen(8080);

三、配置art-template

3-1 安装依赖

npm install koa-art-template art-template -S

四、拆分路由系统

node.js +mongdb实现登录功能

//routers-index.js
const router = require("koa-router")();
router.get("/", async ctx => {
 await ctx.render('index');
})
module.exports = router;
//index.js
const koa = require("koa");
const router = require('./routers/index.js');
const render = require('koa-art-template');
const app = new koa();
const path = require("path");
render(app, {
 root: path.join(__dirname, 'views'),
 extname: '.html',
 debug: process.env.NODE_ENV !== 'production'
});

app.use(router.routes());
app.listen(8080);

五、初始化项目的配置文件

node.js +mongdb实现登录功能

//init-config.js
const path = require("path");
const render = require('koa-art-template');
const router = require('../routers/index');
function initConfig(app) {
 // process.cwd()可以读取项目的路径
 render(app, {
  root: path.join(process.cwd(), 'views'),
  extname: '.html',
  debug: process.env.NODE_ENV !== 'production'
 });

 app.use(router.routes());
}
module.exports = initConfig;
//index.js
const koa = require("koa");
const app = new koa();
let initConfig = require('./init/config');
initConfig(app);
app.listen(8080);

六、MVC设计项目结构

model -->数据层
views -->视图层
controllers -->视图控制层

node.js +mongdb实现登录功能

//routers--index.js
const router = require("koa-router")();
const controllers = require("../controllers");
// 只写文件名默认会读取文件里的index.js
router.get("/", controllers.index)
module.exports = router;
//controller--index.js
let index = async ctx=>{
 await ctx.render('index');
}
module.exports = {
 index
}

七、获取post传值

//1.安装依赖
npm i koa-bodyparser -S
//2.进行项目的配置
var Koa = require('koa');
var bodyParser = require('koa-bodyparser');

var app = new Koa();
app.use(bodyParser());

app.use(async ctx => {
 //3.取值 ctx.request.body
 ctx.body = ctx.request.body;
});

八、连接数据库

npm i mongoose -S
//models --db.js
const mongoose = require('mongoose');
mongoose.connect( 'mongodb://127.0.0.1:27017/studentManage', {useNewUrlParser: true},(err)=>{
 if(err) throw err;
 console.log("database连接成功")
});
module.exports = mongoose;
//models --user.js
var mongoose = require('./db');
var UserSchema = new mongoose.Schema({
 name:String,
 pwd:String
})
var User = mongoose.model('User',UserSchema,'user');
module.exports = User;
//controllers -- index.js
let doLogin = async ctx=>{
 let {user,pwd} = ctx.request.body;
 let data = await UserModel.find({name:user,pwd});
 console.log(data);
 // 数据库中有对应的用户名密码则数组有东西,没有则数组没东西
 if(data.length>0){
  /* 登录成功 */
  ctx.body = "登录成功"
 }else{
  ctx.body = "用户名和密码不存在"
 } 
}

总结

到此这篇关于node.js +mongdb实现登录功能的文章就介绍到这了,更多相关node.js mongdb实现登录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 学习 - 提高篇
Feb 02 Javascript
JavaScript 事件冒泡简介及应用
Jan 11 Javascript
JavaScript自定义事件介绍
Aug 29 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
Apr 02 Javascript
js跨域请求的5中解决方式
Jul 02 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
BootStrap入门学习第一篇
Aug 28 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
webpack+vue.js构建前端工程化的详细教程
May 10 Javascript
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
VSCode launch.json配置详细教程
Jun 18 #Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 #Javascript
通过实例了解JS执行上下文运行原理
Jun 17 #Javascript
从0搭建vue-cli4脚手架
Jun 17 #Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 #Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 #Javascript
vue移动端的左右滑动事件详解
Jun 17 #Javascript
You might like
Zerg兵种介绍
2020/03/14 星际争霸
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
Webkit的跨域安全问题说明
2011/09/13 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
python+mongodb数据抓取详细介绍
2017/10/25 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python计算无向图节点度的实例代码
2019/11/22 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
学校招生宣传广告词
2014/03/19 职场文书
政工例会汇报材料
2014/08/26 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
爱的承诺书
2015/01/20 职场文书
解析Java中的static关键字
2021/06/14 Java/Android