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 相关文章推荐
document.onreadystatechange事件的用法分析
Oct 17 Javascript
基于jquery的跨域调用文件
Nov 19 Javascript
js怎么终止程序return不行换jfslk
May 30 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
Sep 06 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
Oct 12 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
Angular 表单控件示例代码
Jun 26 Javascript
JavaScript实现求最大公共子串的方法
Feb 03 Javascript
JS块级作用域和私有变量实例分析
May 11 Javascript
vue实现日历表格(element-ui)
Sep 24 Javascript
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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
javascript cookies操作集合
2010/04/12 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
js实现Tab选项卡切换效果
2020/07/17 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
求职简历中的自我评价分享
2013/12/08 职场文书
新书吧创业计划书
2014/01/31 职场文书
进步之星获奖感言
2014/02/22 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
竞选部长演讲稿
2014/04/26 职场文书
2015年售票员工作总结
2015/04/29 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技