ES6&Node
夹心776655
这个作者很懒,什么都没留下…
展开
-
babel原理
babel原理原创 2024-03-31 15:40:00 · 131 阅读 · 0 评论 -
ES Module与CommonJS的区别
ESModule和CommonJS的区别原创 2024-03-26 23:24:06 · 263 阅读 · 0 评论 -
【Node.js】项目之注册与登录
注册1、判断账号密码验证码有没写上2、判断验证码对不对3、判断账户名在数库里有没有4、如果有,告诉用户已经注册了,请换一个名5、如果没有,把用户的信息存进数据库6、注册成功npm i uuid 生成不重复字符串const {v4:uuid} = require('uuid')uuid()密码加密npm i md5const md5 = require('md5');md5(str)验证码利用第三方中间件npm i svg-captchanpm i express-原创 2021-01-15 15:46:54 · 384 阅读 · 0 评论 -
【Node.js】项目之搜索
搜索效果1. 模糊查询SELECT * FROM 表名 WHERE 字段名 LIKE '%值%'SELECT * FROM 表名 WHERE 字段名 LIKE '值%' -- 值开头SELECT * FROM 表名 WHERE 字段名 LIKE '%值' -- 值结束SELECT * FROM goods_list WHERE goods_name LIKE '%手机%'2.搜索内容,出现响应商品,并且可以排序和分页(1随机排序 2新品 3价格排序),每搜索一次search表对应count原创 2021-01-14 11:02:26 · 890 阅读 · 1 评论 -
【Node.js】项目之动态路由和分页操作
详情评论通过goods_id 去拿此商品 的所有评论信息,根据uid去拿到用户的账号和头像,然后传页码和一页的品论条数// comment part// we can get all the evaluation information by goods_id// we can get username and avatar from uid// params: page and comment lengthrouter.get('/comment/:id', async (req, res,原创 2021-01-12 23:59:35 · 631 阅读 · 0 评论 -
【Node.js】之项目准备和首页
(1) 准备项目生成框架:npm i express-generator -g --saveexpress --view = ejs myapp安装包依赖cd myappnpm install启动项目npm run start将db放进项目并下载mysql模块npm i mysql(2) 首页 banner接口需要图片的地方需要开放静态资源app.use("/image_source",express.static(path.join(__dirname,原创 2021-01-12 23:35:24 · 369 阅读 · 0 评论 -
【Node.js】封装原生Node连接MySQL数据库
【Node.js】封装原生Node连接MySQL数据库utils/config.js// configure database file informationlet config = { host: "127.0.0.1", port: 3306, user: "root", password: "root", database: "test"}module.exports = config;utils/db.jsconst mysql = requ原创 2021-01-10 12:29:06 · 303 阅读 · 1 评论 -
【Node.js】原生Node操作MySQL
原生Node操作MySQL初始化项目npm init -y 下载mysql模块npm install mysql (1) 请求模块const mysql=require("mysql")(2) 创建连接并配置连接参数使用mysql的createConnection() 方法去创建一个连接,返回一个连接对象需要传递一个json作为参数,配置host主机 ,port端口, user数据库账号 , password数据库密码 , database数据名let connection=m原创 2021-01-09 19:52:39 · 158 阅读 · 0 评论 -
【Node.js】之formidable中间件实现文件上传
formidable实现文件上传前端必须使用post 和enctype=“mutilpart/form-data”1、在跟目录下创建一个临时文件夹,用来存储临时文件2、把临时的文件移动到最终的目录使用:(1)下载npm i formidable(2)引入不用app.useconst formidable=require("formidable")(3)创建表单对象let form=formidable({ uploadDir:"./tempdir",//文件临时上传路原创 2021-01-08 19:59:12 · 503 阅读 · 0 评论 -
【Node.js】Cookie与Session模拟登录
Cookie基本用法const express = require('express');let app = express()const cookieParser = require("cookie-parser")app.use(cookieParser())// 设置 res.cookie(k,v,过期时间) // 过期时间过期时间有两种{maxAge:时间段} {expires:时间点}// 获取let date = new Date("2021-1-8 9:54:原创 2021-01-08 16:48:54 · 606 阅读 · 0 评论 -
【Node.js】之第三方中间件实现验证码
Node.js第三方中间件实现验证码svg-captcha验证码使用:(1)下载npm i svg-captcha --save(2)引入不用app.useconst svgCaptcha=require("svg-captcha")(3)创建一个icolet svgico =svgCaptcha.create()// res.type("svg") 设置渲染的数据的类型/* 可以传一个对象作为参数 let svgico= svgCaptcha.create({原创 2021-01-07 19:54:31 · 325 阅读 · 0 评论 -
【Node.js】中间件之处理错误中间件
Node.js中利用中间件处理错误案例error.jsconst express = require('express');let app = express();app.get("/index", (req, res) =>{ res.send("index")})app.get("/login", (req, res) =>{ res.send("login")})// set middleware to handle errorapp.use((re原创 2021-01-07 18:14:46 · 655 阅读 · 0 评论 -
【Node.js】路由之请求GET与POST参数
GET方法1.原生node请求get参数const express = require('express');const url = require('url');let app = express();// 原生node写法app.get("/index", (req, res) => { let { query } = url.parse(req.url, true); res.send(`GET I am ${query.name} and my age is ${q原创 2021-01-07 11:49:49 · 916 阅读 · 0 评论 -
【Node.js】模拟路由渲染页面和登录操作
Node.js模拟路由渲染页面和登录Index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Index</title></head>&l原创 2021-01-06 00:02:24 · 210 阅读 · 0 评论 -
【Node.js】递归删除文件夹
使用递归和同步的形式删除文件夹方法一const fs = require("fs");function delDir(dir) { let files = fs.readdirSync(dir) for (let v of files) { let newpath = dir + "/" + v let stats = fs.statSync(newpath)// '1.js'(得使用绝对路径) if (stats.isFile())原创 2021-01-04 22:48:32 · 453 阅读 · 2 评论 -
【ES6】之浅拷贝与深拷贝
浅拷贝浅拷贝之拷贝引用地址(栈), 没有拷贝内存地址(堆)数组的浅拷贝let arr = [1, 2, 3, 4 ,5];let arr1 = arr;arr1.push(6);console.log(arr1, arr);//(6) [1, 2, 3, 4, 5, 6] (6) [1, 2, 3, 4, 5, 6]当对arr1的数据进行改变时, arr的数据也会相应进行改变, 因为只是改变了栈中的地址对象的浅拷贝let obj = { name: 'jiaxin'原创 2020-12-30 18:59:06 · 217 阅读 · 0 评论 -
【ES6】之面向对象
面向对象面向对象介绍 上世纪 70 年代,图灵奖获得者Alan Curtis Kay(艾伦·凯)提出了面向对象的思想,可以说,他是面向对象思想的鼻祖。图灵奖由美国计算机协会(ACM)于 1966 年设立,专门奖励那些对计算机事业作出重要贡献的个人。一般每年只奖励一名计算机科学家,只有极少数年度有两名合作者或在同一方向作出贡献的科学家共享此奖。因此它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。 在《面向对象分析与设计》这本书中,Grady Booch(格雷迪.布奇) 总结原创 2020-12-30 18:07:26 · 406 阅读 · 0 评论 -
【ES6】之Promise对象
1.什么是PromisePromise是异步编程的一种解决方案, 比传统的解决方案(回调函数)更合理更强大2.为什么要解决异步问题1.异步回调不符合开发思想2.代码不美观3.回调地狱, 拿到一个数据需要一些条件回调地狱案例:$.ajax({ url:'http://api2.xqb.ink/api/courses', success(res){ console.log( res,'列表内容' ) let id = res.result[0原创 2020-12-29 21:53:53 · 116 阅读 · 0 评论 -
【ES6】之iterator原理实现
1.iterator在数组中的运用var arr=[1,2,3,4,5]console.log(arr);// Symbol.iterator// 创建一个指针对象let ite=arr[Symbol.iterator]()console.log(ite);console.log(ite.next());//{value: 1, done: false}console.log(ite.next());//{value: 2, done: false}console.log(ite.ne原创 2020-12-29 15:42:08 · 126 阅读 · 0 评论 -
【ES6】数据结构之Set和Map
ES6中的数据结构Setsize 获取set集合的长度add(值) 给集合添加值,返回新setdelete(值) 删除某个值,返回布尔值,表示是否删除成功has(值) 查询这个值是否时集合的成员,返回布尔值clear() 清空集合,没有返回值// let s=new Set(类数组) let s = new Set("hello") console.log(s);//{"h", "e", "l", "o"} 可以去重 // 给数原创 2020-12-29 14:35:37 · 99 阅读 · 0 评论 -
【ES6】之箭头函数
ES6之箭头函数1.函数声明方式箭头函数是一个匿名函数 function() —— ()=> let fun = () => { console.log("have fun"); } fun(); var obj = { fun: () => { console.log("have fun either"); } } obj.fun();2.匿名函数的参数原创 2020-12-28 19:47:25 · 143 阅读 · 0 评论 -
【ES6】之解构赋值
1.什么是解构赋值按照一定的模式, 将数组或对象中的数据提取出来, 赋值给变量,这个过程叫做解构赋值1、赋值:将数组或对象中的数据提取出来,赋值给变量 let arr = [1, 2, 3, 4, 5] // let 变量名=值 let a = arr[0] let b = arr[1] console.log(a, b);2、解构:按照一定的模式(数组模式,对象模式) // let 变量名=值 // let [变量名1,变量名2,...]=值 // l原创 2020-12-28 19:14:46 · 138 阅读 · 0 评论