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 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
Javascript根据指定下标或对象删除数组元素
Dec 21 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
png在IE6 下无法透明的解决方法汇总
May 21 Javascript
jQuery实现平滑滚动的标签分栏切换效果
Aug 28 Javascript
JS实现alert中显示换行的方法
Dec 17 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
javascript的BOM
May 03 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
vue 实现websocket发送消息并实时接收消息
Dec 09 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
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
mysql总结之explain
2012/02/27 PHP
php中opendir函数用法实例
2014/11/15 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
mouse_on_title.js
2006/08/25 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python3.6编写的单元测试示例
2019/08/17 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
体育系毕业生自荐信
2014/06/28 职场文书
建国大业观后感600字
2015/06/01 职场文书
消防宣传语大全
2015/07/13 职场文书
法律服务所工作总结
2015/08/10 职场文书