1.7k 2 分钟

# 判断是否包含 ES6 提供了三个方法用于判断字符串是否包含。 includes(str,[index]) 判断指定位置开始,字符串是否包含指定字符串 startsWith(str,[index]) 字符串的索引值开始是否以另一个字符串开头 endsWith(str,[index]) 字符串的索引值开始是否以另一个字符串结尾 三个方法的使用方法基本保持一致。 区分大小写 第一个参数为待搜索的字符串 第二个参数表示开始的索引位置,默认为 0 结果返回布尔值 let str =...
2k 2 分钟

# 解构赋值 ECMAScript 6 允许按照一定模式从数组或对象中提取值,对变量进行赋值。这种赋值方式被称为解构赋值。 ECMAScript 6 的 “解构赋值” 本质上属于 “模式匹配”。赋值运算符两边的模式相同,左边的变量会被赋予对应位置的值。 # 变量的解构赋值 从指定的数组或对象中提取值,为指定变量进行赋值。 var/let [变量名1,变量名2,变量名3] = 数组或对象变量的索引值对应值的索引值。 let [a, b, c] = [1, 2, 3];console.log(a, b, c); // 1 2 3# 赋值失败 let [a] = [];console.log(a);...
2.5k 2 分钟

# ES6 的概念以及运行环境 ES6 即是一个历史名词,也是一个泛指。含义是 5.1 版以后的 JavaScript 的下一代标准。涵盖 ES2015、ES2016、ES2017 等 # WebStorm 配置 找到左上角的 file,选择 setting 选择 Languages & Frameworks 设置 ES6 选项。 新版的 webstorm 已经默认是 es6 了 # Babel 编译器 其主要作用是用于将 ES2015 + 代码转化为向下兼容的 JavaScript 代码。 安装 yarn add @babel/core @babel/cli...
1k 1 分钟

代码地址:https://github.com/changeclass/Node_Blog_koa2.git # pm2 介绍 安装 pm2 npm i pm2 -g通过 pm2 --version 命令查看档期的版本 在 package.json 中编写启动的命令 { "scripts": { "dev": "cross-env NODE_ENV=dev nodemon index.js", "prd":"cross-env NODE_ENV=production...
4.3k 4 分钟

代码地址:https://github.com/changeclass/Node_Blog_koa2.git # async 与 await 异步 promise 写法 getFileContent('a.json').then(aData => { console.log('a data', aData) return getFileContent(aData.next)}).then(bData => { console.log('b data', bData) return...
4.9k 4 分钟

代码地址:https://github.com/changeclass/Node_Blog_express.git # 原理介绍 app.use 用来注册中间件 遇到 HTTP 请求,根据 path 和 method 判断触发哪些 实现 next 机制,即上一个通过 next 触发下一个 # 代码实现 实例化一个类,用于封装 get 、 post 、 use 方法 const http = require("http");const slice = Array.prototype.slice;class LikeExpress {...
7k 6 分钟

代码地址:https://github.com/changeclass/Node_Blog_express.git # 脚手架(express-gemerator) 安装 express npm i express-generator -g 初始化目录 express blog-express 安装插件 cd blog-expressyarn install 运行项目 yarn run start或者 npm start 访问 http://127.0.0.1:3000 为了方便开发,继续安装 nodemon 和 cross-env yarn add nodemon...
1.4k 1 分钟

代码地址:https://github.com/changeclass/Node_Blog.git # Sql 注入 为了预防 sql 注入,我们需要使用 excape 。在导出 exec 处在导出一个 escape (原生提供)。 module.exports = { exec, escape:mysql.escape}接下来在 controller/user.js 中修改两个参数,并将 sql 语句中的单引号去掉。 username = escape(username)password = escape(password)const sql =...
2.3k 2 分钟

代码地址:https://github.com/changeclass/Node_Blog.git # NodeJs 文件操作 无论是读与写都需要导入 fs 模块,这个模块是 nodejs 自带的模块。不需要进行安装。 其次还需要导入一个 path 模块,用于路径的拼接。 node 环境提供了一个变量 __dirname 表示当前的路径。因此使用此变量与文件名进行拼接即可获取到当前的文件。 const fs = require('fs')const path = require('path')const fileName =...
4.9k 4 分钟

代码地址:https://github.com/changeclass/Node_Blog.git # Server 端 Cookie 的操作 存储在浏览器的一段字符串(最大 5kb) server 操作 cookie 只需要设置响应头即可。例如: res.setHeader('Set-Cookie', `username=lisi;realname=lisi`)获取 Cookie 也很简单。通过请求的 header 的 cookie 即可获取 req.headers.cookie其返回内容是一个字符串。 在此项目中,前端传递的 Cookie...