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 相关文章推荐
异步动态加载js与css文件的js代码
Sep 15 Javascript
文本框文本自动补全效果示例分享
Jan 19 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 Javascript
jquery实现的树形目录实例
Jun 26 Javascript
jQuery实现div拖拽效果实例分析
Feb 20 Javascript
JS获取及验证开始结束日期的方法
Aug 20 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
深入理解js中的加载事件
Feb 08 Javascript
vue事件修饰符和按键修饰符用法总结
Jul 25 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
Oct 27 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 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
最省空间的计数器
2006/10/09 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
jquery 学习笔记一
2010/04/07 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
axios异步提交表单数据的几种方法
2019/08/11 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python发送arp欺骗攻击代码分析
2014/01/16 Python
Python标准库与第三方库详解
2014/07/22 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
工作违纪检讨书
2014/02/17 职场文书
建设工程授权委托书
2014/09/22 职场文书
晚会闭幕词
2015/01/28 职场文书
小学入学感言
2015/08/01 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android