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 相关文章推荐
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
Bootstrap每天必学之媒体对象
Nov 30 Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 Javascript
关于JavaScript中事件绑定的方法总结
Oct 26 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
微信小程序使用for循环动态渲染页面操作示例
Dec 25 Javascript
VuePress 静态网站生成方法步骤
Feb 14 Javascript
vue 实现上传组件
May 31 Vue.js
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
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
php提交post数组参数实例分析
2015/12/17 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
详谈jQuery中的this和$(this)
2014/11/13 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
[01:38]2018DOTA2亚洲邀请赛主赛事第二日现场采访 神秘商人痛陈生计不易
2018/04/05 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python函数的周期性执行实现方法
2016/08/13 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
python使用opencv读取图片的实例
2017/08/17 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Django单元测试工具test client使用详解
2019/08/02 Python
django 控制页面跳转的例子
2019/08/06 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
大学生就业自荐信
2013/10/26 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
小学语文国培感言
2014/03/04 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
校运会加油稿大全
2015/07/22 职场文书