05 2019 档案

摘要:我们假设计算机运行一行基础代码需要执行一次运算 上面这个方法需要执行 2 次运算 这个方法需要 (n + 1 + n + 1) = 2n + 2 次运算 我们把 算法需要执行的运算次数 用 输入大小n 的函数 表示,即 T(n) 。此时为了 估算算法需要的运行时间 和 简化算法分析,我们引入时间复杂 阅读全文
posted @ 2019-05-29 16:12 胡椒粉hjf 阅读(156) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-05-25 01:15 胡椒粉hjf 阅读(15) 评论(0) 推荐(0) 编辑
摘要:测试题1:内存分析,运算符优先级 作用域与作用域链 阅读全文
posted @ 2019-05-21 17:34 胡椒粉hjf 阅读(154) 评论(0) 推荐(0) 编辑
摘要:简介 沙箱模型技术是浏览器和其他应用程序中保护安全的一种组件关系设计模式,最初发明人为GreenBorder公司。2007年5月,谷歌公司收购了该公司,也将此项专利应用于chrome浏览器的研发中。 阅读全文
posted @ 2019-05-20 01:24 胡椒粉hjf 阅读(657) 评论(0) 推荐(0) 编辑
摘要:路由的基本使用 第一步:获取url跟目录下的字符 浏览器访问http://localhost:9000/login 后台拿到访问路劲login 第二步:路由功能的实现 首先创建一个路由模块文件router.js,下面代码分别由login和register 这种方式其实就是根据pathname来调用r 阅读全文
posted @ 2019-05-18 19:28 胡椒粉hjf 阅读(2350) 评论(0) 推荐(0) 编辑
摘要:文件系统模块概述 该模块是核心模块,提供了操作文件的一些API,需要使用require导入后使用,通过 require('fs') 使用该模块 文件 I/O 是由简单封装的标准 POSIX 函数提供的 。 所有的方法都有异步和同步的形式。 异步形式始终以完成回调作为它最后一个参数。传给完成回调的参数 阅读全文
posted @ 2019-05-18 19:07 胡椒粉hjf 阅读(237) 评论(0) 推荐(0) 编辑
摘要:在浏览器输入存在的网址的一个交互过程 1.用户通过浏览器发送一个http的请求到指定的主机 2.服务器接收到该请求,对该请求进行分析和处理 3.服务器处理完成以后,返回对应的数据到用户机器 4.浏览器接收服务器返回的数据,并根据接收到的进行分析和处理 由客户端发送一个http请求到指定的服务端 -> 阅读全文
posted @ 2019-05-18 19:02 胡椒粉hjf 阅读(460) 评论(0) 推荐(0) 编辑
摘要:Buffer类概述 一个用于更好的操作二进制数据的类 我们在操作文件或者网络数据的时候,其实操作的就是二进制数据流 Node为我们提供了一个更加方便的去操作这种数据流的类 Buffer,他是一个全局的类,不需要引入后才能使用,可以直接使用 Buffer类的构造方法 new Buffer(size) 阅读全文
posted @ 2019-05-18 18:34 胡椒粉hjf 阅读(600) 评论(0) 推荐(0) 编辑
摘要:process对象概述 process对象是一个全局对象,可以在任何地方都能访问到他,通过这个对象提供的属性和方法,使我们可以对当前运行的程序的进程进行访问和控制 process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.j 阅读全文
posted @ 2019-05-18 18:28 胡椒粉hjf 阅读(671) 评论(0) 推荐(0) 编辑
摘要:global对象的__filename属性和__dirname属性 __filename属性:返回当前执行的文件的文件路径,该路径是经过解析后的绝对路径,在模块中,该路径是模块文件的路径,此属性并非全局属性,而是模块的 __dirname属性:返回当前执行脚本文件所在目录的路径,该属性也是模块的,而 阅读全文
posted @ 2019-05-18 18:25 胡椒粉hjf 阅读(815) 评论(0) 推荐(0) 编辑
摘要:模块的概念 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块加载系统。 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块),换言之,一个 Node.js 文件就是一个模块 模块是Node.js 应用程序的基本组成部分,每个模块都有自己的作用域 在 阅读全文
posted @ 2019-05-18 17:29 胡椒粉hjf 阅读(217) 评论(0) 推荐(0) 编辑
摘要:普通本地函数的调用 调用另外一个js文件里的函数(只支持一个函数) 首先创建一个js文件fun1.js 该文件只有一个函数fun1,并且将其导出 然后在node服务中进行调用fun1.js文件中的fun1函数 调用另外一个js文件里的函数(支持多个函数) 首先创建一个js文件otherFun.js 阅读全文
posted @ 2019-05-18 17:25 胡椒粉hjf 阅读(341) 评论(0) 推荐(0) 编辑
摘要:supervisor 会不停的watch 你应用下面的所有文件,发现有文件被修改,就重新载入程序文件这样就实现了部署,修 改了程序文件后马上就能看到变更后的结果。麻麻再也不用担心我的重启 nodejs 了! 首先安装 supervisor (全局安装) 使用 supervisor 代替 node 命 阅读全文
posted @ 2019-05-18 17:12 胡椒粉hjf 阅读(209) 评论(0) 推荐(0) 编辑
摘要:Mongoose 多表(N个表)关联查询概述 需求:文章(article),文章分类(articlecate),用户(user)这三个表之间的关系,一篇文章对应文章分类表中的某个类型,对应着用户表中的某个用户 Mongoose 多表(N个表)关联查询代码实现 首先我们需要创建db.js(连接数据库) 阅读全文
posted @ 2019-05-17 18:32 胡椒粉hjf 阅读(6383) 评论(1) 推荐(0) 编辑
摘要:Mongoose 两个表关联查询aggregate 通常两个表关联查询的时候,是一种一对多的关系,比如订单与订单详情就是一对多的关系,一个订单下面有多个商品 数据模拟 首先我们先将数据模拟出来,先选择数据库 代码演示:使用Mongoose来实现order集合和order_item集合的关联查询 Mo 阅读全文
posted @ 2019-05-17 16:46 胡椒粉hjf 阅读(2653) 评论(0) 推荐(0) 编辑
摘要:什么是mongoose数据校验 用户通过mongoose给mongodb数据库增加数据的时候,对数据的合法性进行的验证 mongoose里面定义Schema:字段类型,修饰符、默认参数 、数据校验都是为了数据库数据的一致性 Schema,为数据库对象的集合,每个schema会映射到mongodb中的 阅读全文
posted @ 2019-05-16 22:12 胡椒粉hjf 阅读(479) 评论(0) 推荐(0) 编辑
摘要:Mongoose 内置 CURD 方 法 Mongoose 内置 CURD 方 法文档地址:https://mongoosejs.com/docs/queries.html 常用的方法如下: Model.deleteMany() Model.deleteOne() Model.find() Mode 阅读全文
posted @ 2019-05-16 18:15 胡椒粉hjf 阅读(769) 评论(0) 推荐(0) 编辑
摘要:Mongoose 索引介绍 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更 快(如果有些字段是用不着的就不要设置索引)。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询 优化技巧。 mongoose 中除了以前创建索引的方式,我们也可 阅读全文
posted @ 2019-05-16 17:33 胡椒粉hjf 阅读(861) 评论(0) 推荐(0) 编辑
摘要:mongoose 预定义模式修饰符 mongoose 提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化,主要有:lowercase、uppercase 、trim,这里不一一演示,对trim做一个示列,其他的使用方式都是一样的 同样我们先定义一个model文件夹和定义db.js模块用于连接 阅读全文
posted @ 2019-05-16 14:25 胡椒粉hjf 阅读(356) 评论(0) 推荐(0) 编辑
摘要:mongoose 介绍 Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose 是 NodeJS 的驱动,不能作为其他语言的驱动。 Mongoose 有两个特点:通过关系型数据库的思想来设计非关系型数据库;基于 mongodb 驱动,简化操 阅读全文
posted @ 2019-05-16 01:15 胡椒粉hjf 阅读(412) 评论(0) 推荐(0) 编辑
摘要:MongoDB 聚合管道(AggregationPipeline) 使用聚合管道可以对集合中的文档进行变换和组合。实际项目应用主要是表关联查询、数据的统计。 MongoDB 中使用 db.COLLECTION_NAME.aggregate([{<stage>},...]) 方法 来构建和使用聚合管道 阅读全文
posted @ 2019-05-15 23:57 胡椒粉hjf 阅读(491) 评论(0) 推荐(0) 编辑
摘要:数据库备份 在 Mongodb 中我们使用 mongodump 命令来备份 MongoDB 数据。该命令可以导出所有数据 到指定目录中。 mongodump 命令可以通过参数指定导出的数据量级转存的服务器,对应的就是导出,导出之前先开启Mongodb的服务,不需要连接数据库 执行完之后,在指定的目录 阅读全文
posted @ 2019-05-15 23:56 胡椒粉hjf 阅读(182) 评论(0) 推荐(0) 编辑
摘要:Mongodb账户权限配置 第一步 创建超级管理用户 这是整个数据库(所有数据库的超级管理员,可以给每个数据库设置管理员) 第二步 修改Mongodb数据库配置文件 找到Mongodb的安装目录到bin目录,里面有个文件mongod.cfg,修改security:authorization: ena 阅读全文
posted @ 2019-05-15 23:54 胡椒粉hjf 阅读(112) 评论(0) 推荐(0) 编辑
摘要:简述关系数据库中表与表的 3 种关系 一对一的关系:例如:一个人对应一个唯一的身份证号,即为一对一的关系。 一对多关系 :例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系 多对多关系 :例如:一个学生可以选多门课程,而同一门课程可以被多个学生选修,彼此的对应关系 即是多对多关系 阅读全文
posted @ 2019-05-15 23:54 胡椒粉hjf 阅读(2161) 评论(0) 推荐(0) 编辑
摘要:索引基本使用 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查 询优化技巧。 首先我们有个数据库,并且创建一个集合students,插入一些数据 创建索引的命令 获取当前集合的索引 删 阅读全文
posted @ 2019-05-15 23:43 胡椒粉hjf 阅读(2178) 评论(0) 推荐(0) 编辑
摘要:最小权限原则 纵深防御原则 数据与代码分离原则 不可预测性原则 阅读全文
posted @ 2019-05-15 15:28 胡椒粉hjf 阅读(221) 评论(0) 推荐(0) 编辑
摘要:浏览器安全—同源策略 详情请查看这篇文章:浏览器特性的同源策略及限制 浏览器沙箱机制 详情查看这篇文章:浏览器沙箱机制 恶意网址拦截 阅读全文
posted @ 2019-05-15 14:18 胡椒粉hjf 阅读(708) 评论(0) 推荐(0) 编辑
摘要:流量劫持 什么是DNS劫持 劫持域名的DNS解析结果, http内容劫持 如何防御http内容劫持:https DDOS攻击 什么是DDOS 分布式拒绝服务攻击 短信轰炸 伪造一批手机号码,不断的调用获取短信验证的接口,造成服务商的损失 短信轰炸的防御 图片验证码,限制同设备,同IP,同手机号码的发 阅读全文
posted @ 2019-05-15 14:03 胡椒粉hjf 阅读(270) 评论(0) 推荐(0) 编辑
摘要:搭建node项目目录以及基本的文件 初始化package.json文件 执行下面命令生成package.json文件 创建项目目录 创建路由目录routes,存放静态资源目录public,视图目录views 安装项目所需的依赖 app.js文件初始化 然后启动node服务 配置路由 接下来我们定义两 阅读全文
posted @ 2019-05-14 17:10 胡椒粉hjf 阅读(1362) 评论(0) 推荐(0) 编辑
摘要:Koa 脚手架创建项目 通过应用 koa 脚手架生成工具 可以快速创建一个基于 koa2 的应用的骨架 全局安装koa 创建项目 安装依赖 启动项目 修改端口,在项目目录下的bin目录有个www的文件,在红色框处修改后,重启项目即可生效 阅读全文
posted @ 2019-05-14 15:30 胡椒粉hjf 阅读(503) 评论(0) 推荐(0) 编辑
摘要:node-mongodb-native的介绍 使用基于官方的 node-mongodb-native 驱动,封装一个更小、更快、更灵活的 DB 模块, 让我们用 nodejs 操作 Mongodb 数据库更方便、更灵活。 官方文档:http://mongodb.github.io/node-mong 阅读全文
posted @ 2019-05-14 07:17 胡椒粉hjf 阅读(762) 评论(0) 推荐(0) 编辑
摘要:MongoDB 表(集合) 创建删除和增删改查数据 创建一个集合(emp) 在创建集合之前先使用use xxx,选择数据库,如果没有会创建(并不是真正的创建,只有在数据库里面保存集合数据之后才能够真正创建数据库) 当真正创建完集合之后,这个时候mydb数据库才会真正的存在 还可以创建指定参数的集合 阅读全文
posted @ 2019-05-13 15:53 胡椒粉hjf 阅读(681) 评论(0) 推荐(0) 编辑
摘要:在MongoDB数据库里面是存在有数据库的概念,但是没有模式(所有的信息都是按照文档保存的),保存数据的结构就是JSON结构,只不过在进行一些数据处理的时候才会使用到MongoDB自己的一些操作符号 查看该数据库服务器中所有的数据库 使用和创建数据库 use mydb //没有就创建,实际上这个时候 阅读全文
posted @ 2019-05-13 14:13 胡椒粉hjf 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Session 简单介绍 session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。 Session 的工作流程 当浏览器访问服务器并发送第一次请求时,服务器端会创建一个session对象,生成一个类似于key,value的键值对, 阅读全文
posted @ 2019-05-13 10:56 胡椒粉hjf 阅读(558) 评论(0) 推荐(0) 编辑
摘要:Cookie 简介 cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域 名的时候共享数据。 HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页 面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何 关系的。 阅读全文
posted @ 2019-05-13 09:11 胡椒粉hjf 阅读(1321) 评论(0) 推荐(0) 编辑
摘要:art-template 模板引擎介绍 art-template 是一个简约、超快的模板引擎。 它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行 性能,并且同时支持 NodeJS 和浏览器。 art-template 支持 ejs 的语法,也可以用自己的类似 阅读全文
posted @ 2019-05-12 17:50 胡椒粉hjf 阅读(804) 评论(0) 推荐(0) 编辑
摘要:koa-static介绍 在网络请求中,请求往往分成两种类型,一种是静态资源,直接从服务器的文件存储中读取,一种是动态资源,一般需要先从数据库获取数据,然后经过一定的处理,最后返回给客户端。 koa-static是静态资源请求中间件,静态资源例如html、js、css、jpg、png等等,不涉及其他 阅读全文
posted @ 2019-05-12 16:56 胡椒粉hjf 阅读(5535) 评论(0) 推荐(1) 编辑
摘要:原生 Nodejs 获取 post 提交数据 首先创建并初始化一个node应用,根路由使用index.ejs模板 在views目录下创建一个index.ejs模板(注意需要安装ejs插件) ,跟配置模板的路劲一致 然后启动node应用,并且浏览器访问 当在浏览器端输入了这两个输入框点提交后,node 阅读全文
posted @ 2019-05-12 11:24 胡椒粉hjf 阅读(1639) 评论(0) 推荐(0) 编辑
摘要:求背景图片左边到box盒子左边框外测的距离 通过这个问题呢,我们来解释一下,首先初始化代码是这样的 结果中可以看到,我们背景图片的起始位置是在padding-box下的(也就是说在padding的左上角),那么我想让这个背景图片从content-box开始怎么办呢 添加一个样式属性backgroun 阅读全文
posted @ 2019-05-10 02:39 胡椒粉hjf 阅读(302) 评论(0) 推荐(0) 编辑
摘要:飞洒地方 阅读全文
posted @ 2019-05-08 05:44 胡椒粉hjf 阅读(266) 评论(0) 推荐(0) 编辑
摘要:window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作的。除了IE6、IE7之外的所有浏览器都支持这个功能。 阅读全文
posted @ 2019-05-08 05:42 胡椒粉hjf 阅读(351) 评论(0) 推荐(0) 编辑
摘要:Ajax跨域请求的问题 跨域:跨域名, 一个域名下的文件去请求了和他不一样的域名下的资源文件(注意是请求文件,而不是数据接口),那么就会产生跨域请求,下面来写一个ajax来跨域请求的例子 结果可以看到,报错了,如果该域名的服务器设置了这个域名为白名单,就可以访问,就相当于电话白名单,才可以进行通话 阅读全文
posted @ 2019-05-08 05:38 胡椒粉hjf 阅读(368) 评论(0) 推荐(0) 编辑
摘要:跨域的理解 首先我们来创建两个服务,来模拟跨域的问题 首先来创建一个node的服务,这个服务使用了下面的test.html 这个html中请求了另外一个服务的数据 创建第二个服务来接收第一个服务发送过来的请求 分别启动两个服务,并且访问第一个服务中的test.html,test.html向第二个服务 阅读全文
posted @ 2019-05-08 05:29 胡椒粉hjf 阅读(301) 评论(0) 推荐(0) 编辑
摘要:根据前端跨域的那些事这篇文章中的跨域的理解这一块,我们重新创建两个服务,第一个服务使用了test.html test.html中使用fetch来发送请求,并且设置了一个自定义的请求头'X-Test-Cors': '123' 第二个服务,还是设置了'Access-Control-Allow-Origi 阅读全文
posted @ 2019-05-08 05:21 胡椒粉hjf 阅读(1591) 评论(0) 推荐(0) 编辑
摘要:WebSocket 的介绍 WebSocket 是什么 WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 为什么需要 WebSocket 了解计算机网络协议的人,应该都知道:H 阅读全文
posted @ 2019-05-08 05:20 胡椒粉hjf 阅读(15425) 评论(2) 推荐(0) 编辑
摘要:线程机制 进程与线程 进程(process):程序的一次执行, 它占有一片独有的内存空间,可以通过windows任务管理器查看进程 线程(thread):是进程内的一个独立执行单元,是程序执行的一个完整流程, 是CPU的最小的调度单元 应用程序必须运行在某个进程的某个线程上,一个进程中至少有一个运行 阅读全文
posted @ 2019-05-07 22:50 胡椒粉hjf 阅读(416) 评论(0) 推荐(0) 编辑
摘要:cookie是如何出生的 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的。Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范。 什么是cookie 一个 阅读全文
posted @ 2019-05-07 21:57 胡椒粉hjf 阅读(412) 评论(0) 推荐(0) 编辑
摘要:什么是作用域 就是一块"地盘", 一个代码段所在的区域,它是静态的(相对于上下文对象), 在编写代码时就确定了 作用域分类:全局作用域, 函数作用域, 没有块作用域(ES6有了) 作用域的作用是隔离变量,不同作用域下同名变量不会有冲突 作用域与执行上下文 全局作用域之外,每个函数都会创建自己的作用域 阅读全文
posted @ 2019-05-07 20:55 胡椒粉hjf 阅读(226) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-05-07 06:03 胡椒粉hjf 阅读(16) 评论(0) 推荐(0) 编辑
摘要:内存溢出 是一种程序运行出现的错误; 当程序运行需要的内存超过了剩余的内存时, 就出抛出内存溢出的错误 内存泄露 占用的内存没有及时释放; 内存泄露积累多了就容易导致内存溢出 常见的内存泄露意外的全局变量 常见的内存泄露没有及时清理的计时器或回调函数 常见的内存泄露闭包 函数执行完后, 函数内的局部 阅读全文
posted @ 2019-05-07 04:21 胡椒粉hjf 阅读(2924) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示