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 相关文章推荐
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 Javascript
JavaScript中Window对象的属性及事件
Dec 25 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
vue中如何创建多个ueditor实例教程
Nov 14 Javascript
js正则取值的结果数组调试方法
Oct 10 Javascript
微信小程序拖拽排序列表的示例代码
Jul 08 Javascript
Vue实现菜单切换功能
Nov 08 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 Javascript
使用react+redux实现计数器功能及遇到问题
Jun 02 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中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
教大家使用Python SqlAlchemy
2016/02/12 Python
python监控文件或目录变化
2016/06/07 Python
基于Python的关键字监控及告警
2017/07/06 Python
python实现猜数字小游戏
2020/03/24 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
浅述python2与python3的简单区别
2018/09/19 Python
Python3运算符常见用法分析
2020/02/14 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
谈谈python垃圾回收机制
2020/09/27 Python
python自动生成证件号的方法示例
2021/01/14 Python
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
请说出几个常用的异常类
2013/01/08 面试题
Prototype如何更新局部页面
2013/03/03 面试题
主持人演讲稿范文
2013/12/28 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
项目投资建议书
2014/05/16 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
我是特种兵观后感
2015/06/11 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL