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 相关文章推荐
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
基于jquery的可多选的下拉列表框
Jul 20 Javascript
JS 操作Array数组的方法及属性实例解析
Jan 08 Javascript
动态显示可输入的字数提示还可以输入的字数
Apr 01 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
jQuery检测某个元素是否存在代码分享
Jul 09 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
详解用函数式编程对JavaScript进行断舍离
Sep 18 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
Vue封装Axios请求和拦截器的步骤
Sep 16 Javascript
微信小程序实现多张图片上传功能
Nov 18 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
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
javascript中的this详解
2014/12/08 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
商务考察邀请函范文
2014/01/21 职场文书
公司贷款承诺书
2014/05/30 职场文书
企业文化口号
2014/06/12 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
现实表现材料范文
2014/12/23 职场文书
先进工作者推荐材料
2014/12/23 职场文书