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 对象中的类数组操作
Apr 27 Javascript
setInterval,setTimeout与jquery混用的问题
Apr 08 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
基于Bootstrap table组件实现多层表头的实例代码
Sep 07 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
仿京东快报向上滚动的实例
Dec 13 Javascript
JavaScript 有用的代码片段和 trick
Feb 22 Javascript
Bootstrap Paginator+PageHelper实现分页效果
Dec 29 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 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 fsockopen函数被禁用的解决办法
2013/08/07 PHP
php+mysql数据库查询实例
2015/01/21 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
python实现文件快照加密保护的方法
2015/06/30 Python
python 内置模块详解
2019/01/01 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
检查接待方案
2014/02/27 职场文书
合作意向书模板
2014/03/31 职场文书
十周年庆典策划方案
2014/06/03 职场文书
档案工作汇报材料
2014/08/21 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
中国梦宣传标语口号
2015/12/26 职场文书