node --- koa、Mongoose、vue联系知识梳理

前端、后端联系知识梳理

  • 以打开浏览器,访问login为栗
  • 打开浏览器,访问localhost:8080/#/login
  • src/router/index.js 会根据 /login 找到对应的Login(src/components/pages/Login.vue)组件, 然后渲染到浏览器
  • 当输入用户名和密码,点击登录按钮后
  • 根据Login组件中配置的axios请求向后端发送请求.
  • 请求的url是: http://localhost:3001/login
  • 后端监听该url的代码如下
const Router = require('koa-router');
let router = new Router();router.post('/login', async(ctx)=>{// 此处是逻辑实现代码
})
  • 后端监听到该路由请求后,会用请求的参数和数据库进行比对.
  • 使用mongoose连接数据库的代码如下
const mongoose = require('mongoose');
const { resolve } = require('path');
const db = 'mongodb://localhost/smile-vue'exports.connect = () =>{mongoose.connect(db);let maxConnectTimes = 0;return new Promise((resolve, reject) =>{mongoose.connection.on('disconnected', (err) =>{// 断线重连,最大重连次数3次if(maxConnectTimes <= 3){maxConnectTImes++;mongoose.connect(db);} else{reject(err);throw new Error('[connect error] 数据库连接失败')}});// 失败mongoose.connection.in('error', () =>{console.log('[error] 数据库出错');mongoose.connect(db);})// 成功打开mongoose.connection.once('open', () =>{console.log('[ok] MongoDB connected successfully');resovle();})})
}
  • 导入各个集合规则
  • 使用glob
const glob = require('glob');
const { resolve } = require('path');export.initSchemas = () =>{glob.sync(resolve(__dirname, './schema', '**/*.js')).forEach(require);
}
// 此时,会连接到数据库,并初始化各个表的规则.
  • 使用mongoose查找数据
const User = mongoose.model('User');User.findOne({ userName: username }).exec().then(async (result) =>{console.log(result);
})
  • koa返回数据给前端
ctx.body = {code:200,message:msg
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

倒计时

//1获取24小时$fixation_time strtotime("1 day")-time();//2.获取已经过去的时间$different time()-strtotime($question->created_at);//3.获取时间差$time $fixation_time - $different;//4.获取时$hour floor($time/3600);if($hour<10){$hour 0.$hour;…

Git命令一览

Git命令一览 分支名称 master 稳定分支 develop 不稳定分支&#xff08;开发分支&#xff09; issue 或 fixbug BUG 分支 feature 新功能分支 release 预发布分支 本地操作 git init 初始化 git add 增加到暂存区 git commit -m 提交到分支 git status 查看状态 gi…

从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)...

前言 今天正式开始写代码了&#xff0c;之前铺垫了很多了&#xff0c;包括 6 篇基础文章&#xff0c;一篇正式环境搭建&#xff0c;就是为了今天做准备&#xff0c;想温习的小伙伴可以再看看《Vue 基础入门详细的环境搭建》&#xff0c;内容很多&#xff0c;这里就暂时不复习了…

node --- 使用mongoose连接mongoDB,并初始化所有的Schema

写了一个init.js函数 使用了glob来对协助完成(https://github.com/isaacs/node-glob)连接的数据库的名称(smile-vue)连接数据库操作:connect 断线重开连接失败连接成功 初始化所有的Schemas暴露给其他页面使用的接口 const mongoose require(mongoose); const db mongodb:/…

ajax跨域问题(php)

ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”。 解决方法(我只用过下面这3种)&#xff1a; 1. 架设服务器代理&#xff1a;即浏览器请求同源服务器&#xff0c;再由后者请求外部服务&#xff08;之前博主一直用这种方法&#xff0c;其实感觉这种算不上跨域请…

PHP 实现随机字符串,可作为随机密码

PHP 实现随机字符串&#xff0c;可作为随机密码 //传入需要的字符串长度 function generate_rand($length){ $chars "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $randStr ""; for($i0;…

红帽7 su命令与sudo服务

1、su命令 su命令可以解决切换用户身份的需求&#xff0c;使得当前用户在不退出登录的情况下&#xff0c;顺畅地切换到其他用户&#xff0c;比如从root管理员切换至普通用户 [rootlocalhost Desktop]# su - lisi Last login: Wed Sep 12 23:47:44 CST 2018 on pts/0 [lisilocal…

vue --- 按钮的防重复点击事件

按钮的防重复点击事件 :loading属性当loading true时:按钮会显示一个旋转的圆圈.此时的按钮是无法点击的当loading false时:按钮重新变为可点击的状态可以通过使用一个变量来控制按钮的可点击性,当提交时,按钮不可点击,提交完毕后,按钮可以点击 <van-button :loading&qu…

PHP 实现列出目录的内容

PHP 实现列出目录的内容 <?phpfunction list_files($dir) { if(is_dir($dir)) { if($handle opendir($dir)) { while(($file readdir($handle)) ! false) { if($file ! "." && $file ! ".." && $file ! "Thumbs.db") { …

CentOS6找回root密码 - 黑猴子

1&#xff09;重启Linux&#xff0c;见到下图&#xff0c;在3秒钟之内按下回车 2&#xff09;三秒之内要按一下回车&#xff0c;出现如下界面 3&#xff09;按下e键就可以进入下图 4&#xff09;移动到下一行&#xff0c;再次按e键 5&#xff09;移动到下一行&#xff0c;进行修…

树形依赖背包dp的最优解问题

fij表示在dfs序序列上做了前i个点&#xff0c;已经选择了j个人的最大权值和。   那么如果这个点选fij−>fi1,j1   如果不选fij−>fisizei,j&#xff08;表示跳过子树转移&#xff09; code&#xff1a; for(i1;i<N;i)for(j0;j<K;j){f[i1][j1]max(f[i1][j1],f[i…

vue node --- 前后端联系的知识梳理

前端、后端联系知识梳理 以打开浏览器,访问login为栗打开浏览器,访问localhost:8080/#/loginsrc/router/index.js 会根据 /login 找到对应的Login(src/components/pages/Login.vue)组件, 然后渲染到浏览器当输入用户名和密码,点击登录按钮后根据Login组件中配置的axios请求向后…

PHP 销毁指定目录

PHP 销毁指定目录 销毁指定目录&#xff0c;以及之下的内容 <?phpfunction destroyDir($dir, $virtual false) { $ds DIRECTORY_SEPARATOR; $dir $virtual ? realpath($dir) : $dir; $dir substr($dir, -1) $ds ? substr($dir, 0, -1) : $dir; if (is_dir($dir) …

[译]写程序更快、更好、更便宜的艺术

原文 没有人想延迟交付时间、超出预算。没有一个开发人员会在早上醒来的时候想"我今天要做搞一些垃圾代码。我如何才能增加、耗费雇主更多的钱&#xff1f;"。尽管如此&#xff0c;还是有许多的软件项目进行的不是很好。总是有来自各方面的压力&#xff0c;让我们不得…

常见笔试面试问题点(转载)

原文&#xff1a; java各种概念 Core Java总结 Base: OOA是什么&#xff1f;OOD是什么&#xff1f;OOP是什么&#xff1f;{oo(object-oriented):基于对象概念,以对象为中心,以类和继承为构造机制,来认识,理解,刻画客观世界和设计,构建相应的软件系统的一门方法;本意----模拟人类…

mongoose --- 建立一个集合规则,并导出.

使用mongoose写一个集合的规则 首先要设计数据结构下面是newGoods.json里面的一条数据 {"ID": "ff89cf2e14e143dc9e49ad75f7bc7bb0","GOODS_SERIAL_NUMBER": "6901844910651","SHOP_ID": "402880e860166f3c0160167897…

PHP获取用户真实IP地址

PHP获取用户真实IP地址 <?phpfunction getRealIpAddr() { if (!empty($_SERVER[HTTP_CLIENT_IP])) { $ip$_SERVER[HTTP_CLIENT_IP]; } elseif (!empty($_SERVER[HTTP_X_FORWARDED_FOR])) //to check ip is pass from proxy { $ip$_SERVER[HTTP_X_FORWARDED_FOR]; } else…

虚拟机vmware的连接方式以及IP端口,协议等概念

1.NAT虚拟机相当于小弟&#xff0c;宿主机相当于大哥&#xff0c;宿主机虚拟出一个网段供虚拟机上网用 2.Bridge桥接&#xff0c;虚拟机和宿主机相当于局域网中的两台机器 3.Host-Only虚拟机只和宿主机通信&#xff0c;无法上网 32位和64位linux的区别转载于:https://www.cnblo…

__METHOD__

转载于:https://www.cnblogs.com/xiaobiaomei/p/8662846.html

node --- 模块化连接MongoDB数据库的参数设置方案之一

数据库的初始化操作 连接的数据库的名称包含连接数据库初始化所有的Schemas暴露给其他页面使用的接口假设写在 database/init.js 中 const mongoose require(mongoose); // 连接的数据库的名称是 lzhhc-vue const db mongodb://localhost/lzhhc-vue const glob require(gl…