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高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
Dec 20 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
JavaScript实现网页截图功能
Oct 16 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
js无法获取到html标签的属性的解决方法
Jul 26 Javascript
详解AngularJs中$resource和restfu服务端数据交互
Sep 21 Javascript
Bootstrap CSS布局之列表
Dec 15 Javascript
Vue表单demo v-model双向绑定问题
Jun 29 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
JavaScript获取URL参数的方法分享
Apr 07 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
python进阶教程之异常处理
2014/08/30 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python饼状图的绘制实例
2019/01/15 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
.NET面试题:什么是反射
2016/09/30 面试题
斯福泰克软件测试面试题
2015/02/16 面试题
Why we need EJB
2016/10/20 面试题
小溪流的歌教学反思
2014/02/13 职场文书
三项教育活动实施方案
2014/03/30 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
信访维稳工作汇报
2014/10/27 职场文书
英语投诉信范文
2015/07/03 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL