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 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
JavaScript 组件之旅(一)分析和设计
Oct 28 Javascript
jQuery中的常用事件总结
Dec 27 Javascript
YUI模块开发原理详解
Nov 18 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 Javascript
JavaScript父子窗体间的调用方法
Mar 31 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
May 13 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 Javascript
Vue实现页面添加水印功能
Nov 09 Javascript
extjs图形绘制之饼图实现方法分析
Mar 06 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基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
php cookis创建实现代码
2009/03/16 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
vue mounted组件的使用
2018/06/18 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
python中的二维列表实例详解
2018/06/19 Python
python K近邻算法的kd树实现
2018/09/06 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python创建n行m列数组示例
2019/12/02 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
python脚本第一行如何写
2020/08/30 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
简单通用的简历自我评价
2014/09/21 职场文书
房屋产权证明书
2014/10/15 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
python pygame入门教程
2021/06/01 Python
Redis RDB技术底层原理详解
2021/09/04 Redis
python运行脚本文件的三种方法实例
2022/06/25 Python