自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 ES6语法:模板字符串

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <script>

2021-02-21 00:09:40 224

原创 ES6语法: let和const区别

var变量穿透问题<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> &lt

2021-02-20 23:17:52 235

原创 nodejs操作mysql数据库

首先要安装mysql模块。 ==>> npm install mysql安装mysql模块db.jsvar mysql = require("mysql");// 1:创建一个mysql的Connection对象// 2.配置数据连接的信息var connection = mysql.createConnection({ host:"127.0.0.1", user:"root", port:3306, password:"111111", d

2021-02-20 22:43:53 191

原创 Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings.

无法新建SpringBoot项目并出现:Initialization failed for ‘https://start.spring.io’ Please check URL,network and proxy settings.Error message:Cannot download ‘https://start.spring.io’:connect time out问题描述:Initialization failed for ‘https://start.spring.io’ Please che

2021-02-08 11:10:56 163

原创 cannot resolve org.attoparser:attoparser:2.0.4.RELEASE

maven报错:cannot resolve org.attoparser:attoparser:2.0.4.RELEASEspringboot 使用thymeleaf 的依赖问题, 将版本换成<thymeleaf-spring5.version>3.0.9.RELEASE</thymeleaf-spring5.version> <thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialec

2021-02-01 01:17:22 825

原创 springboot打包jar

打包springboot-first文件mvn -f springboot-first clean package目录tx_sboot是和springboot-first是包含关系要使用到mvn -f

2021-01-28 17:49:22 67

原创 C:\Windows\System32\tcnative-1.dll: Can‘t load IA 32-bit .dll on a AMD 64-bit platform

记录运行springboot时候遇到的问题:C:\Windows\System32\tcnative-1.dll: Can’t load IA 32-bit .dll on a AMD 64-bit platformhttp://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.26/binaries/下载 tomcat-native-1.2.26-openssl-1.1.1i-win32-bin.zip这个文件将该文件夹下的t

2021-01-28 16:45:26 734 1

原创 Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated....

学springboot时候遇到这个问题记录问题:Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated....解决问题我用的是idea2020 选择编辑配置取消勾选 Enable launch optimization

2021-01-28 16:18:12 749

原创 服务器

服务器平时上网的时候,打开浏览器(客户端)访问网址,此时会向网址所在的服务器上发送请求,服务器获得请求后将请求的数据响应给发送请求的浏览器(比如:html,css,javascript等),服务器主要作用之一是在网络环境中提供外界可以访问的资源。在服务器中提供对外界访问的资源一般分为两种:静态资源:html、css、javascript等,指提供给客户端浏览器的数据内容不会改变。动态资源:如servlet、JSP等,指提供给客户端浏览器的数据由程序动态生成,不同的客户端浏览到的数据可能有所不同。在

2021-01-20 23:14:49 111

原创 事务

事务要么都成功,要么都失失败ACID原则A.原子性(atomicity,[ˌætəmˈɪsɪti]):要么全部完成,要么都不完成C.一致性 (consistency):总数不变I.隔离性(isolation): 多个进程互不干扰D.持久性 (durability) :一旦提交不可逆,持久化到数据库了隔离性的问题:脏读:一个事务读取了另一个没有提交的事务不可重复读:在同一个事务内,重复读取表中的数据,表数据发生了改变。虚读(幻读):在同一个事务内,读取到别人插入的数据,导致前后读出来结果不

2021-01-20 13:45:25 66

原创 Ajax:服务器相应的数据格式

服务器响应的数据格式在真实的项目中服务器大多数情况下会以JSON对象作为响应数据的格式。当客户端拿到响应数据时,要将JSON数据和HTML字符串进行拼接,然后将拼接的结果使用DOM操作的方式追加到页面中。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ini

2021-01-16 01:17:46 117

原创 express-art-template模版引擎

模版引擎为了使art-template模版引擎能够更好的和Express框架配合,模版引擎官方在原art-template模版引擎的基础上封装了express-art-template。安装模块://当渲染后缀为art的模版时 使用express-art-templateapp.engine('art',require('express-art-template'))//设置模版存放目录app.set('views',path.join(__dirname,'view'));//渲染模版

2021-01-16 00:03:53 155

原创 Express请求处理之静态资源的处理

静态资源的处理通过Express内置的express.static 可以方便地托管静态文件,例如img、css、JavaScript 文件等。app.use(express.atatic('public'));const express = require('express');const path = require('path');const app = express();// 实现静态资源访问功能app.use(express.static(path.join(__dirname,

2021-01-15 22:50:04 309

原创 Express路由参数

Express路由参数在Express框架中传递和接受get请求参数还有另外一种方式,称为路由参数。这种方式可以让请求方式非常的美观。也可以让路由代码更加利于阅读。开发者可以一眼就看出来请求当前路由需要传递哪些参数。app.get('/find/:id',(req,res) =>{ console.log(req.params);//{id:123}});localhost:3000/find/123// 引入express框架const express = require('expr

2021-01-15 22:32:53 1004

原创 app.use方法

// 引入express框架const express = require('express');const bodyParser = require('body-parser');// 创建网站服务器const app = express();app.use(fn())function fn () { return function (req,res,next) { console.log(req.method) next() }}app.g

2021-01-15 22:19:37 753

原创 Express请求处理之POST参数的获取

POST参数的获取Express 中接收POST请求参数需要借助第三方包 body-parser//引入body-parser模块const bodyParser = require('body-parser');//配置body-parser模块app.use(bodyParser.urlencoded({ extended: false}));//接受请求app.post('/add',(req, res) =>{ //接受请求参数 console.log(req.body);

2021-01-15 18:18:52 2242

原创 Express请求处理之GET参数的获取

GET参数的获取Express框架中使用req.query即可获取GET参数,框架内部会将GET参数转换为对象并返回。//接受地址栏问号后面的参数//例如:http://localhost:3000/?name = zhangsan&age = 22app.get('/',(req,res)=>{ console.log(res.query);//{"name":"zhangsan","age":"30"}})// 引入express框架const express = req

2021-01-15 17:44:20 468

原创 Express框架请求处理之构建模块化路由

构建模块化路由Express框架提供了构建模块化路由的方式,可以根据某种条件将路由进行分类,将不同类别的路由放置在不同的模块中方便管理。比如说一个博客网站,这个网站有给用户看的文章列表页面,文章详情页面也有给管理员使用的文章列表管理页面以及发布文章页面,这两种页面可以设置不同的路由分别进行管理。const express = require('express')首先通过require方法将express框架引入到项目当中const home = express.Router();expres

2021-01-15 17:25:10 273

原创 Express框架之捕获错误

捕获错误在node.js中,异步API的错误信息都是通过回调函数获取的,支持Promise对象的异步API发送错误可以通过catch方法捕获,异步函数执行如果发生错误要如何捕获错误。try catch 可以捕获异步函数以及其他同步代码在执行过程中发生的错误,但是不能捕获其他类型的API发生的错误。app.get("/",async(req,res,next)=>{ try{ await User.find({name:"张三"}) }catch(ex){ next(ex); }

2021-01-15 16:03:30 624

原创 错误处理中间件

错误处理中间件在程序执行的过程中,不可避免的会出现一些无法预料的错误,比如文件读取失败,数据库连接失败,错误处理中间件是一个集中处理错误的地方。Express框架提供了错误处理中间件用来处理错误,程序在运行过程中一旦出错不能够再继续运行了,如果想要程序在出错以后还能够继续运行我们就需要在程序当中捕获错误加个错误处理,程序错误可以大致分为两种一种是应用逻辑错误就是bug,这种错误是可以在开发阶段解决的。程序在读取硬盘中某一个文件时这个文件不存在,程序也会报错。但是这种错误无法在开发阶段预料到,在程序运

2021-01-15 14:13:40 432

原创 中间件应用

中间件应用1.路由保护,客户端在访问需要登录的页面时,可以先使用中间件判断用户登录状态,用户如果未登录,则拦截请求,直接响应,禁止用户进入需要登录的页面

2021-01-15 13:20:43 140

原创 app.use中间件用法

Express框架中两个中间件一个是get方法用来接受get请求,一个是post方法用类接受post请求。对于同一个请求路径不管是get请求还是post请求都想接受使用Express框架里的app.use(),不区分请求方式。app.use 中间件用法app.use 匹配所有的请求方式,可以直接传入请求处理函数,代表接受所有的请求app.use((req, res, next) => { console.log(req.url); next();});app.use方法可以直接传递一

2021-01-14 23:16:18 1592

原创 中间件

中间件1.什么是中间件中间件就是一堆方法,可以接受客户端发来的请求,可以对请求做出响应,也可以将继续交给下一个中间件继续处理。中间件可以将复杂的请求处理逻辑进行分开处理,也可以让请求在指定的路由前先做一些验证,比如查看用户是否登录,如果登录再让它继续向下执行。中间件是由两部分提供的,第一部分是由框架提供的用于接受请求的方法,第二部分是开发人员提供的用于处理请求的方法。app.get('请求路径',’处理函数‘) //接收并处理get请求app.post('请求路径',’处理函数‘) //接受并

2021-01-14 21:36:57 185

原创 Express框架简介

Express框架是什么Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用,我们可以使用npm install express 命令进行下载。Express也是node框架的第三方模块,它的作用是专门用来创建网站应用,因为使用原生js创建网站应用代码比较复杂比较底层,比如实现路由功能需要对请求地址进行解析还有进行各种判断,代码过于繁琐不利于阅读。实现静态资源访问功能还需要使用文件读取模块对文件的内容进行读取,还需要设置响应内容的类型,但这实际上

2021-01-14 20:58:43 9308 3

原创 ajax运行原理及实现步骤

Ajax运行原理在传统的网站应用当中 ,都是由浏览器本身向服务器端发送请求,由浏览器本身接受服务器端响应到客户端的数据,由于浏览去在发送请求和接收响应之间不能再继续响应用户的其他操作,比如继续浏览并拉动当前页面所以用户体验不好。要实现在用户浏览当前网站期间向服务器端发送请求,并将请求来的数据在不刷新页面的情况下更新在页面当中。所以请求的发送与响应的接受就不能由浏览器自己来做它要找一个代理人帮助他做这件事情,如有有人能帮助浏览器做了这件事情,浏览器就能空闲下来响应用户的操作了。实际上Ajax就是浏览

2021-01-14 16:11:21 366

原创 服务器端基础概念

2021-01-14 03:16:03 152

原创 Node.js全局对象global

Node.js全局对象global在浏览器中全局对象是window,在Node中全局对象是global。Node中全局对象有以下方法,可以在任何地方使用,global可以省略console.log 在控制台中输出setTimeout()设置超时定时器clearTimeout()清除超时时定时器setInterval()设置间歇定时器clearInterval()清除间歇定时器// global.console.log('我是global对象下面console.log方法输出的内容');

2021-01-14 03:10:20 416

原创 异步函数 async await

异步函数异步函数是异步编程语法的终极解决方案,它可以让我们将异步代码写出同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。const fn = async () =>{};async function fn (){}// 在普通函数定义的前面加上async关键字,普通函数就变成异步函数// 异步函数默认的返回值对象是promise对象// 在异步函数内部使用throw 关键字进行错误的抛出// await关键字 1.只能出现在异步函数中// await关键字后面只能跟pro

2021-01-14 02:31:08 279

原创 node.js异步编程之Promise

PromisePromise出现的目的是解决Node.js异步编程中回调地域的问题。Promise本身并没有提供新的功能,它只是异步编程中语法的改进。可以让我们异步骤API的执行和结果的处理进行分离。Promise本身是构造函数,如果使用Promise去解决回调地域的问题,需要通过new运算符号去创建promise构造函数的实例对象。let promise = new Promise((resolve,reject) =>{});在创建实例对象的过程当中,我们需要为构造函数去传递一个匿名函

2021-01-14 01:36:57 169

原创 node.js中的异步API

node.js中的异步APIfs.readFile('./demo.txt',(err,result) => {})读取文件的操作是异步API,在readFile()方法内部要读取文件,读取文件的操作跟setTimeout定时器是类似的都是需要一定时间的操作,所以文件读取的结果不能通过返回值得方式拿到,需要通过回调函数。第二个参数就是回调函数,在文件读取完成之后系统会来调用回调函数,并且在调用回调函数的时候,会将文件读取的结果通过回调函数参数的形式传递过来,所以对于一般文件读取的操作都是在回调函

2021-01-13 22:09:50 197

原创 静态资源+异步API+回调函数

静态资源服务器不需要处理,可以直接响应给客户端的资源就是静态资源,例如CSS、JavaScript、image文件。https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.pngconst http = require('http');const url = require('url');const app = http.createServer();const path = require('path');const f

2021-01-13 20:43:27 177

原创 node路由

路由http://localhost:3000/indexhttp://localhost:3000/login路由是指客户端请求地址与服务器程序代码的对应关系简单的说,就是请求什么响应什么。

2021-01-13 15:03:22 55

原创 请求参数GET、POST

请求参数1.GET请求参数参数被放置在浏览器地址栏中,例如:http://localhost:3000/?name =zhangsan&age=20// 用于创建网站服务器的模块const http = require('http');// app对象就是网站服务器对象const app = http.createServer();// 用于处理url地址const url = require('url');// 当用户端有请求来的时候// req请求对象,包含了请求相关的信

2021-01-13 02:28:19 3931

原创 响应报文writeHead

1.HTTP状态码200请求成功404请求的资源没有被找到500 服务器端错误400客户端请求有语法错误2.内容类型text/htmltext/cssapplication/javascriptimage/jpegapplication/jsonwriteHead状态码里面第一个参数是状态码,第二个参数是一个对象,这个对象其实就是响应头里面的信息,响应报文信息。’content-type‘可以根据当前返回的内容来设置它,如果当前返回的内容是纯文本这个时候指定的值是text

2021-01-13 01:29:07 472

原创 HTTP协议请求报文

网站应用在运行过程中,服务器端需要知道客户端请求什么,客户端需要知道服务器端响应了什么,不能鸡同鸭讲。比如中国人和中国人间交流用汉语,俄国人和俄国人交流用俄语,中国人和俄国人之间如何沟通呢?这时候就需要出现一门双方都听得懂的语言,客户端和服务器端进行沟通也是同样需要一个规范就是HTTP协议。1.HTTP协议的概念超文本传输协议(HyperText Transfer Protocol,缩写HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)

2021-01-12 23:06:47 225

原创 node.js中模块化开发(Gulp4)

Gulp中提供的方法gulp.src():获取任务要处理的文件gulp.dest():输出文件gulp.task():建立gulp任务gulp.watch():监控文件的变化

2021-01-12 02:43:49 279 1

原创 计算属性与方法的区别

计算属性与方法的区别计算属性是基于它们的依赖进行缓存的方法不存在缓存<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head&g

2021-01-10 02:10:50 1142

原创 计算属性

1.为何需要计算属性?表达式的计算逻辑可能会比较复杂,使用计算属性可以使模版内容更加简洁2.计算属性的用法computed: { reversedMessage: function(){ return this.msg.split('').reverse().join('') }}<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name=

2021-01-10 01:45:40 494

原创 自定义指令

1.为何需要自定义指令内置指令不满足需求2.自定义指令的语法规则(获取元素焦点)vue.directive('focus' { inserted: function(el){ //获取元素焦点 el.focus(); }})3.自定义指令用法<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content

2021-01-10 01:22:35 215

原创 表单域修饰符numebr、trim、lazy

表单域修饰符number:转化为数值trim:去掉开始和结尾的空格lazy:将input事件切换为change事件1.number:转化为数值 <input type="text" v-model.number='age'><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="

2021-01-09 16:42:01 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除