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 相关文章推荐
JQuery扩展插件Validate—6 radio、checkbox、select的验证
Sep 05 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
JavaScript 变量、作用域及内存
Apr 08 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
Dec 28 Javascript
Bootstrap实现下拉菜单效果
Apr 29 Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
AngularJS实时获取并显示密码的方法
Feb 06 Javascript
浅析Vue中拆分视图层代码的5点建议
Aug 15 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中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
详解Python爬虫的基本写法
2016/01/08 Python
用Python编写简单的微博爬虫
2016/03/04 Python
Python第三方库的安装方法总结
2016/06/06 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
详解python中*号的用法
2019/10/21 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
医学生自我鉴定范文
2013/11/08 职场文书
小学新学期教师寄语
2014/01/18 职场文书
董事长秘书职责
2014/01/31 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
质量管理标语
2014/06/12 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
美丽心灵观后感
2015/06/01 职场文书
行政处罚事先告知书
2015/07/01 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书