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类
Sep 08 Javascript
JQuery的Validation插件中Remote验证的中文问题
Jul 26 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
通过onmouseover选项卡实现img图片的变化
Feb 12 Javascript
简单选项卡 js和jquery制作方法分享
Feb 26 Javascript
JavaScript简单下拉菜单实例代码
Sep 07 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
3种vue组件的书写形式
Nov 29 Javascript
vuex 使用文档小结篇
Jan 11 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
Vue拖拽组件开发实例详解
May 11 Javascript
JavaScript偏函数与柯里化实例详解
Mar 27 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
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
javascript中的隐式调用
2018/02/10 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
Python设计模式之单例模式实例
2014/04/26 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
简单了解Python中的几种函数
2017/11/03 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python 多线程串行和并行的实例
2019/02/22 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python3使用GUI统计代码量
2019/09/18 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Python通过len函数返回对象长度
2020/10/22 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
电脑专业个人求职信范文
2014/02/04 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
公司联欢会策划方案
2014/05/19 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
PHP RabbitMQ消息列队
2022/05/11 PHP