自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 Node.js 第五天学习总结

Node.js 第5天学习总结知识点ExpressMongoDB项目一天半的时间ress 中配置使用 body-parserExpress 中配置处理静态资源CRUD 案例中单独提取路由模块上午总结回调函数异步编程如果需要得到一个函数内部异步操作的结果,这是时候必须通过回调函数来获取在调用的位置传递一个函数进来在封装的函数内部调用传递进来的函数find、findIndex、forEach数组的遍历方法,都是对函数作为参数一种运用everyso

2020-10-19 11:11:44 240

原创 解决回调地狱的方法:Promise

什么是回调地狱(callback hell)?对于无法保证顺序的代码,我们采取回调函数的方式,但是这会导致一个问题,就是让我们的代码可读性和可维护性较差。例如:var fs = require('fs');//readFile是异步的,先输出谁的顺序没办法保证//实现先输出a,再输出b,最后输出cfs.readFile('./data/a.txt',function (err,data){ if(err){ // return console.log('读取失败');

2020-10-18 18:20:06 368

原创 package-lock.json 和 package.json的区别

npm5 之前没有package-lock.json这个文件,npm5之后才加入了这个文件的。当你安装包的时候,npm都会生成或者更新 package-lock.json 这个文件。npm5以后的版本安装包不需要加–save参数,它会自动保存信息当你安装包的时候,会自动创建或者更新 package-lock.json 这个文件。package-lock.json 会保存node_moduled中所有包的信息(版本,下载地址)这样的话重新npm install 的时候速度就可以提升从文件

2020-10-16 19:23:16 201

原创 Node.js 第4天学习总结

Node.js 第4天学习总结知识点Express基于文件做一套 CRUD复习jQuery 的 each 和 原生的 JavaScript 方法 forEach301 和 302 的区别模块中导出单个成员和导出多个成员的方式module.exports = xxx通过多次:exports.xxx = xxx导出多个也可以:moudle.exports = {多个成员}module.exports 和 exports 的区别exports 只是 module.expor

2020-10-15 19:30:53 263

原创 JS 事件循环

所有的同步任务在主线程上执行形成一个执行栈主线程遇到异步任务,将其交给异步进程处理异步进程处理完毕后(如定时器时间片到了),将异步任务推入任务队列主线程执行完毕后,查看任务队列,如果存在任务,则将其推进主线程处理重复执行2,3,4步称为时间循环。参考博客:https://blog.csdn.net/qq_39207948/article/details/81671304...

2020-10-15 15:09:25 154

原创 浮动布局的优缺点,清除浮动有哪些方式?

什么是浮动布局:当元素浮动以后可以向左或向右移动,直到它的外边缘碰到包含它的框或者另外一个浮动元素的边框为止。元素浮动以后会脱离正常的文档流,所以文档的普通流中的框就变现的好像浮动元素不存在一样。浮动布局的优点:这样做的优点就是在图文混排的时候可以很好的使文字环绕在图片周围。另外当元素浮动了起来之后,它有着块级元素的一些性质例如可以设置宽高等,但它与inline-block还是有一些区别的,第一个就是关于横向排序的时候,float可以设置方向而inline-block方向是固定的;还有一个就是inl

2020-10-15 14:41:19 1448

原创 让一个元素水平垂直居中,到底有多少种方案?

让一个元素水平垂直居中,到底有多少种方案?水平居中对于行内元素: text-align: center;对于确定宽度的块级元素:width和margin实现。margin: 0 auto;绝对定位和margin-left: -width/2, 前提是父元素position: relative对于宽度未知的块级元素table标签配合margin左右auto实现水平居中。使用table标签(或直接将块级元素设值为display:table),再通过给该标签添加左右margin为

2020-10-15 11:31:25 1082

原创 输入一个url到浏览器页面展示都经历了哪些过程

参考博客:https://blog.csdn.net/qq_24147051/article/details/81115806

2020-10-14 19:32:39 274

原创 get请求和post请求的区别

一、原理区别一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改

2020-10-14 19:16:39 603

原创 HTML5和HTML的区别,CSS3和CSS的区别

HTML5 和 HTML的区别WSSchool官方解释 https://www.w3school.com.cn/html5/html_5_intro.aspHTML5 中的一些有趣的新特性:用于绘画的 canvas 元素用于媒介回放的 video 和 audio 元素对本地离线存储的更好的支持新的特殊内容元素,比如 article、footer、header、nav、section新的表单控件,比如 calendar、date、time、email、url、searchCSS3和CSS的区别

2020-10-14 18:59:50 604 1

原创 js 用回调函数获取一个函数中异步操作(如定时器)的结果

//如果需要获取一个函数中异步操作的结果,则必须通过回调函数来获取function fn(callback){ //var callback = function(data){console.log(data);} setTimeout(function (){ var data = 'hello'; callback(data); },1000);}fn(function (data){ console.log(data)}).

2020-10-14 15:22:30 2025 6

原创 ES6 Math对象的扩展

ES6 Math对象的扩展ES6在Math对象上新增了17个与数学相关的方法。所有这些方法都是静态方法,只能在Math对象上调用。Math.trunc()Math.trunc方法用于去除一个数的小数部分,返回整数部分。Math.trunc(4.1) // 4Math.trunc(4.9) // 4Math.trunc(-4.1) // -4Math.trunc(-4.9) // -4Math.trunc(-0.1234) // -0对于非数值,Math.trunc内部使用Number方法将

2020-10-13 21:06:15 235

原创 ES6数值的扩展

ES6 数值的扩展二进制和八进制表示法ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。从ES5开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6进一步明确,要使用前缀0o表示。0b111110111 === 503 // true0o767 === 503 // true如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法。Number('0b111') // 7Number('0o10') // 8Number.isF

2020-10-13 20:37:36 1062 6

原创 在Express中获取表单GET请求参数和POST请求体数据

在Express中获取表单GET请求参数Express内置了一个API,可以直接通过req.query来获取req.query在Express中获取表单POST请求体数据在Express中没有内置获取表单POST请求体的API,这里我们需要使用一个第三方包:body-parser安装:npm install --save body-parser配置:var express = require('express')//0.引包var bodyParser = require('body-

2020-10-13 18:28:48 1117 4

原创 在 Express 中配置使用 art-template 模板引擎

在 Express 中配置使用 art-template 模板引擎art-template-GitHub仓库art-template官方文档安装npm install --save art-templatenpm install --save express-art-template配置:·

2020-10-13 17:38:26 425

原创 Express起步(安装、demo、路由、静态服务)

Express起步1、安装npm install --save express2、一个小hello worldvar express = require('express');var app = express();app.get('/',function (req,res){ res.send('hello world');});app.listen(3000,function (){ console.log('express app is running...')

2020-10-13 16:44:48 275

原创 解决Node.js中频繁修改代码重启服务器问题

解决Node.js中频繁修改代码重启服务器问题我们可以使用一个第三方命名行工具,nodemon 来帮我们解决频繁修改代码重启服务器问题。nodemon 是一个基于 Node.js 开发的第三方命令行工具,我们使用的时候需要独立安装。(1)安装安装命令如下:# 在任意目录执行该命令都可以# 也就是说,所有需要 --global 来安装的包都可以在任意目录下执行npm install --global nodemon例如:我在cmd命令行当前目录下输入npm install --globa

2020-10-13 11:26:48 500 1

原创 Node.js 文件操作路径和模块路径

Node.js 文件操作路径和模块路径文件操作路径文件操作中的路径可以省略 ./相对路径的写法有:./data/a.txt 和 data/a.txt绝对路径的写法有:/data/a.txt 和 c:/xx/xx...相对路径是相当于当前目录找文件。绝对路径是在文件模块所处磁盘根目录找文件。例如:在当前目录的下有一个 data 文件和一个 “00-模块标识中的 gang.js” 的文件。data文件下有 “a.txt” 和 “foo.js” 两个文件。要读取data文件中的 “a.txt” 文

2020-10-13 10:52:36 426

原创 Node.js 第三天学习总结

Node.js 第三天课堂笔记知识点增删改查登陆注册头像服务端图片水印图片水印找回密码核心系统核心模块第三方模块自己写的模块加载规则以及加载机制循环加载npmpackage .jsonExpress第三方Web开发框架高度封装了http模块更加专注于业务,而非底层细节知其所以然增删改查案例使用文件来保存数据(锻炼异步编码)MongoDB 芒果数据库(所有方法都封装好了)反馈SEO网站

2020-10-13 10:04:42 1009 7

原创 什么是剩余参数 ...arg

什么是剩余参数剩余参数语法允许我们将一个不定数量的参数表示为一个数组。例如:function sum (first, ...args) { console.log(first); // 10 console.log(args); // [20, 30] }sum(10, 20, 30);利用剩余参数我们可以定义一个形参不固定的计算和的函数。const sum = (...args) => { let total = 0; //forEach方法接受一个回

2020-10-12 20:51:52 3758

原创 ES6中的箭头函数

ES6中的箭头函数1、基本语法:使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。其中()里面的内容表示形参,{}表示函数体。() => {} const fn = () => {}例如://箭头函数的写法const fn =(x,y) =>{ console.log(x+y);}//等价于://匿名函数的写法const fn = function(x,y){ console.

2020-10-12 20:26:27 347 1

原创 ES6 数组的扩展

ES6 数组的扩展Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。下面是一个类似数组的对象,Array.from将它转为真正的数组。let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3};// ES5的写法var arr1 = [].slic

2020-10-12 18:37:02 204 1

原创 Express介绍和安装

原生的 http 在某些方面的表现不足以应对我们的开发需求,所以我们就需要使用框架来加快我们的开发效率。框架的目的就是提高效率,让我们的代码高度统一。在node.js中,有很多开发框架,其中一个就是Express框架Express安装过程:http://expressjs.com/en/starter/installing.html...

2020-10-12 16:27:51 293

原创 解决npm被墙问题

解决npm被墙问题npm存储包文件的服务器在国外,有时候会被墙,速度很慢,所以我们需要解决这个问题。http://npm.taobao.org/淘宝的开发团队把npm在国内做了一个备份(镜像),可以代替官方版本。解决方法:方法1:(1)安装淘宝的cnpm:# 在任意目录下执行都可以# --global 表示安装到全局,而非当前目录# --global 不能省略npm install --global cnpm(2)接下来你安装包的时候,需要把之前的 npm 替换成 cnpm 。举

2020-10-12 15:40:56 268 1

原创 理解npm,npm常用的命令

一、npm( node package mannager )的含义npm有两层含义。1、npm网站npmjs.com可以在上面发布包2、npm命令行工具npm的第二层含义就是一个命令行工具,只要你安装了node 就已经安装了npm。npm也有版本这个概念,可以通过在命令行中输入 : npm --version 查看版本号。要升级npm,可以在命令行中输入:npm install --global npm二、npm常用命令npm init (用来生成package.json文件)

2020-10-12 15:09:51 364

原创 解决 package.json 没有dependencies字段的问题

可能的原因1、没有安装包(没有输入过 install 命令)解决方法:在cmd 中输入命令: npm install xxx2、已经输入了安装命令,但是package.json 还是没有dependencies字段,可能是因为没有及时更新导致解决方法:再次在cmd 中输入命令: npm install xxx就可以在package.json里面看到之前下载的依赖的包的信息...

2020-10-12 12:47:59 1263 1

原创 什么是npm?什么是package.json?什么是package-lock.json?

什么是npmnpm 全称是 node package mannager ,翻译过来就是Node.s包管理工具,它能够帮助用户安装和下载包。例如:在cmd 输入命令:npm install art-template jquery bootstrap该命令表示在当前目录下,一次性装art-template、jquery、 bootstrap三个包。什么是 package.json每个项目的根目录下面,一般都有一个 package.json 文件,定义了这个项目所需要的各种模块,以及项目的配置信

2020-10-12 12:41:30 413 1

原创 正则表达式

1

2020-10-11 19:00:19 118

原创 Node.js中require方法加载规则

require方法加载规则深入浅出Node.js(三):深入Node.js的模块机制如果想要了解更多底层细节,可以参考:《深入浅出Node.js》中的模块机制核心模块require(模块名)第三方模块require(模块名)用户自己写的模块require(路径)规则:优先从缓存中加载判断模块标识核心模块第三方模块自己写的模块...

2020-10-11 18:28:30 228

原创 怎么理解 [].slice.call()

在es5标准中,我们经常需要把arguments对象转换成真正的数组。所以我们经常可以看见以下转换方式:[].slice.call(arguments)怎么理解[].slice.call(arguments)[].slice.call(arguments)等价于:Array.prototype.slice.call(arguments) 和 [].__proto__.slice.call(arguments)Array.prototype.slice.call(arguments)原本调用sli

2020-10-11 16:27:17 624 2

转载 javascript中的基本数据类型和引用类型

基本数据类型Number、String 、Boolean、Null和Undefined。基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值。 var a = 10;  var b = a;   b = 20;   console.log(a); // 10值上面,b获取的是a值得一份拷贝,虽然,两个变量的值相等,但是两个变量保存了两个不同的基本数据类型值。b只是保存了a复制的一个副本。所以,b的改变,对a没有影响。下图演示了这种基本数据类型赋值的过程:引用类型数据也就

2020-10-11 15:39:09 331 1

原创 什么是模块化?Node中的模块系统;CommonJs模块规范;exports和module.exports的关系

一、Node中的模块系统使用Node编写应用程序主要就是在使用:ECMAScript脚本语言和浏览器不一样,在Node中没有BOM,DOM核心模块文件操作的 fshttp 服务的 httpurl 路径操作模块path 路径处理模块os 操作系统信息第三方模块art-template必须通过 npm 下载才可以使用自己写的模块自己创建的文件1.1 什么是模块化简单地说,模块化就是有组织地把一个大文件拆成独立并互相依赖的多个小模块。模块内部有许多私有

2020-10-11 11:23:29 282

原创 常见的HTTP状态码

什么是HTTP状态码HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误。HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:各类别常见状态码:2xx (3种)200 OK:表示从客户端发送给服务器的请求被正常处理并返回;204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回);206 Patial Co

2020-10-10 21:12:12 2595 2

原创 原生js中的forEach和jQuery中的each方法的区别

ES5中的forEach()方法forEach是ES5中的一个数组遍历函数,是js原生支持的遍历方法。语法:数组.forEach(function(每一项内容,序号){})例如:// IE8 不支持var array1 = ['abc','d','ddd'];array1.forEach(function (item,index){ console.log(item);});jQuery中的each()方法jQuery中的each()方法可以:1、方便的遍历 jQuery 元

2020-10-10 20:28:20 498 2

原创 Node.js第二天学习总结

Node.js 第2天学习总结知识点反馈怎么用Md结尾的文档,对于我们来说好像就是一个阅读器一样使用………………HTML 也是标记语言markdown 标记语言# 就是标题-、* 就是列表**加粗内容**GFM代码风格var foo = 'bar'var foo ='bar'var foo= 'bar'var foo = "bar" if (true) { console.log('hello') } if (

2020-10-10 19:11:39 220

原创 用ES6中的模板字符串实现在字符串中添加变量和字符串换行

什么是模板字符串它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。例如:var str1 = '你好吗' + '李华'; var str2 = `你好吗李华`;console.log(str1);console.log(str2);输出结果:注意:上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。$('#list').htm

2020-10-10 10:02:17 17639 2

原创 什么是模板引擎? art-template模板引擎怎么使用?

什么是模板引擎?模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。模板引擎不属于特定技术领域,它是跨领域跨平台的概念。在Asp下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScript、WinForm开发都会用到模板引擎技术。模板引擎的用途模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加

2020-10-07 21:33:32 913 1

原创 如何在Node.js中用模板引擎的方式实现一个Apache服务器的功能

js代码:var http = require('http');var fs = require('fs');var template = require('art-template');//1、创建servervar server = http.createServer();//2、监听Server的request请求事件,请求处理函数// 请求// 处理// 响应//一个请求对应一个响应,如果在一个请求的过程中,已经结束响应了,则不能重复发送响应//没有请求就

2020-10-07 21:16:52 203 1

原创 如何使用Node.js做一个Apache 服务器

我们以前使用过 Apache 服务器软件,这个软件默认有一个 www 目录,所有存放在 www 目录中资源都可以通过网址来浏览。那么如何使用Node.js做一个Apache 服务器呢?思路:1、得到www文件下面的文件名和目录名2、将得到的文件名和目录名替换到template.html中3、发送解析执行之后的html页面解决方法:我们可以用fs.readdir得到www文件下面的文件名和目录名。在template.html中需要替换的位置预留一个特殊的标记,用replace替换要插入的数据r

2020-10-07 21:13:34 615

原创 客户端渲染和服务器渲染的区别

客户端渲染:服务器渲染:

2020-10-07 21:04:41 250

优购线上购物商城微信小程序

一个用微信小程序原生框架写的一个小程序。有用户登陆、搜索商品、收藏商品、加购商品、结算商品、联系客服等功能

2020-11-30

用 html+css+bootstrap+Nodejs实现学生管理系统

用 html+css+bootstrap+Nodejs实现学生管理系统,实现了增删改查的功能。代码简洁易懂.

2020-10-15

用Node.实现留言板功能

用nodejs、html 、css实现留言板功能。输入姓名和留言内容,能够实时显示在留言板上面显示留言人,和留言的内容、留言的日期。 //1、/ index.html //2、开发public 目录中的静态资源 // 当请求/public/xxx的时候,读取响应public目录中的具体资源 //3、/post post.html //4、/pinglun // 4.1接受表单提交数据 // 4.2存储表单提交数据 // 4.3让表单重定向到/ // statusCode // setHeader

2020-10-10

网上订餐系统(外卖系统)

网上订餐,前端用的vue框架,后端用的nodejs+MongoDB数据库,实现了登陆、退出登录、商品结算、订单列表,搜索店铺等功能

2021-01-01

仿去哪网webapp

基于vue框架的一个webapp。用到了axios、父子组件间数据的传递、兄弟组件间的传值、路由配置、Better-scroll的使用、Vuex实现数据共享

2020-11-30

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

TA关注的人

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