NODE
栗子好好吃
向来心是看客心,奈何人是剧中人
展开
-
javascript --- > [express+ vue2.x + elementUI]登陆的流程梳理
登录界面使用Vue2.x + elementUI实现的登录界面<template> <div class="login-container"> <el-card header="请先登录" class="login-card"> <!-- @submit.native.prevent阻止表单的默认提交行...原创 2020-03-18 18:35:44 · 273 阅读 · 0 评论 -
webpack --- > [读书笔记] webpack中常用的一些配置项
1. Webpack当前Web开发面临的困境文件依赖关系错综复杂静态资源请求效率低模块化支持不友好浏览器对高级JavaScript特性兼容程度低1.1 webpack概述webpack是一个流行的前端项目构建工具,可以解决当前web开发中所面临的困境.webpack提供了友好的模块化支持,以及代码压缩混淆、处理js兼容问题、性能优化等强大的功能,从而让程序员把工作的重心放到具体...原创 2020-02-13 17:21:00 · 191 阅读 · 0 评论 -
javascript --- > [jsonp] script标签的妙用(绕过同源限制)
1. 同源1.1 什么是同源协议、域名、端口号相同1.2 为什么有同源政策同源政策是为了保护用户信息的安全,放置恶意的网站窃取数据。最初的同源政策是指A网站再客户端设置的Cookie,B网站是不能访问的.随着互联网的发展,同源政策也越来越严格,在不同源的情况下,其中有一项规定就是无法向非同源地址发送Ajax请求,如果请求,浏览器就会报错2. jsonpjsonp是json with...原创 2020-02-04 14:38:22 · 866 阅读 · 0 评论 -
javascript --- > [FormData的使用] 文件上传进度条展示 && 文件上传图片即使预览
1. 准备工作因为要发送Ajax请求,而Ajax技术的运行需要网站环境,因此其中一个解决方案是,将页面作为网站的静态资源暴露出来,然后通过浏览器进行访问.1.1 静态资源使用express将public下面的资源暴露出来在根目录下面新建一个public文件夹和一个app.js文件// app.jsconst express = require('express');const p...原创 2020-02-04 14:09:58 · 270 阅读 · 0 评论 -
node --- > [express] cookie/session 机制与 中间件的使用(路由守卫)
说明源代码记忆、遗忘回顾使用 cookie/session 机制,让 客户端/服务器 的访问变得有状态cookie 与 session由于 HTTP 协议的无状态性,当一次连接断开后. 服务器并不会记录用户是否登录. 因此需要引入 cookie/session 机制cookiecookie: 浏览器在电脑硬盘中开辟的一块空间,主要供服务器端存储数据cookie 中的...原创 2020-01-29 17:26:36 · 597 阅读 · 0 评论 -
node --- > [express项目] 开发环境下使用morgan控制台输出访问信息
说明源代码记录、遗忘回顾process.envnode中提供了一个process.env接口用于访问计算机中的系统环境变量.可以利用以上属性来区分当前的环境是开发环境还是生产环境,代码如下:if (process.env.NODE_ENV === 'development') { console.log('当前环境是开发环境')} else { console.lo...原创 2020-01-29 16:31:43 · 713 阅读 · 0 评论 -
node --- > 模块加载机制
1. Node.js中模块加载机制1.1 模块查找规则-当模块拥有路径但没有后缀时require('./find.js');require('./find');require方法根据模块路径查找模块,如果是完整路径,直接进入模块如果模块后缀省略,先找同名JS文件再找同名JS文件夹require('./find');// 以上会先找到命令行目录下的find.js文件.若找到则返回...原创 2020-01-25 17:01:06 · 1602 阅读 · 0 评论 -
node --- > [node接口阅读]cluster的使用
目标在主进程中完成以下事情:每隔1秒钟输出,当前请求的数量创建等同于CPU数量的进程对每个进程施加一个处理函数,用于统计请求的数量在各个CPU的进程中完成以下事情监听8000端口的请求,并返回最简单的信息发送事件,以触发主进程中施加的事件处理函数前置知识首先通过cluster.isMaster来判断,当前的执行环境是主进程,还是非主进程使用process.s...原创 2019-12-14 20:15:12 · 240 阅读 · 1 评论 -
node --- > 模拟事件的异步
事件在前端浏览器最常见的就是页面交互事件本质是发布/订阅设计模式目标对象使用add方法订阅事件。使用emit发布消息订阅事件说白了就是把名称和回调函数分别作为一个对象的键和值先初始化事件对象class Event { constructor(){ this.events = {}; }}订阅在订阅事件的时候,需要先判断事件是否存在.若不存在,则...原创 2019-12-11 15:41:10 · 129 阅读 · 0 评论 -
docker --- > 使用docker-compose.yml生成redis,并连接redis-cli
docker.compose.yml配置version: '3.1'services: redis: image: redis ports: - 6379:6379命令行:docker-compose up查看: docker ps进入redis-cli,输入以下docker exec -it 7dc0a redis-cli -h loca...原创 2019-12-01 13:53:51 · 3482 阅读 · 0 评论 -
koa --- > 跨域,解析POST参数、路由配置
目标将开发中经常遇见的问题写在这里方便查询.使用Koa创建一个简单的服务器const Koa = require("koa");const app = new Koa();app.listen(3000, () =>{ console.log("[server] Server is running at http://localhost:3000")})使用koa2-cor...原创 2019-11-21 14:49:49 · 530 阅读 · 0 评论 -
koa --- > 使用Github OAuth登录
准备登录github选择右上角的settingDeveloper settings -> OAuth Apps -> Register a new application填入基本信息点击绿色的按钮,可以看见 client_id 和 client secret理清思路:开始时,一个登录的连接,点击连接.后台监听登录(/login)路由,然后重定向到github...原创 2019-11-20 10:43:16 · 380 阅读 · 0 评论 -
koa --- > jwt实现最简单的Token认证
HTML有如下html: 先看代码后挑重点来说明:<!DOCTYPE html><head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://unpkg.com/axios/dist/a...原创 2019-11-18 20:46:47 · 349 阅读 · 0 评论 -
koa --- > seesion实现登录鉴权
koa + vue + session 实现一个简单的登录逻辑/login component/login-session.html<!DOCTYPE html><head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <s...原创 2019-11-18 17:20:14 · 315 阅读 · 0 评论 -
node --- > 实现session认证.
自己创建 Session注: session 是后端的内容具体思路如下:使用 session 空对象存 cookie 键值对.当第一次进入的时候,生成一个随机数 sid,通过 cookie 传递 sid,并再后端使用session[sid] = msg的方式,记录本次的值若非第一次进入,则需要从 cookie 中解析出 sid,进而得到该 sid 下的内容(有可能是用户信息)c...原创 2019-11-17 21:29:47 · 272 阅读 · 0 评论 -
koa --- > 扩展hbs方法
moment是一款常用的处理时间的库传入 1999-03-01T16:00:00.000Z YYYY/MM/DD输出 1999/03/02const moment = require('moment');const myDatePattern = (date, pattern) =>{ return moment(date).format(pattern)} 给扩展h...原创 2019-11-17 10:57:54 · 257 阅读 · 0 评论 -
koa --- > 监听路由,并使用模板引擎渲染显示
使用路由/Koa实战/routes/index.jsconst Router = require('koa-router');const router = new Router();router.get('/', ctx => { ctx.body = 'index';});module.exports = router/Koa实战/routes/users...原创 2019-11-17 09:27:36 · 694 阅读 · 0 评论 -
koa --- > 使用中间件多层级抛出错误
说明能够熟练的掌握错误的抛出,可以在一定程度上提高代码的开发效率和可读性构造错误本栗采用调用一个不存在的函数来抛出错误const Koa = require('koa');const app = new Koa();// 响应时间输出中间件app.use(async (ctx, next) => { await next(); // 获取响应头,印证执...原创 2019-11-16 21:31:57 · 207 阅读 · 0 评论 -
javascript --- > event loop
栗子1求下面函数的输出console.log('script start');setTimeout(() => { console.log('setTimeoout');}, 0);Promise.resolve().then(function(){ console.log('promise1');}).then(function(){ console.log...原创 2019-11-15 12:20:09 · 110 阅读 · 0 评论 -
node --- > 连接mysql(docker环境) && Sequelize库
mysql 数据库[1] 首先配置 docker 环境采用 docker-compose 方法源码: /test-mysql/docker-compose.ymlversion: '3.1'services: mysql: image: mysql command: --default-authentication-plugin=mysql_native_pass...原创 2019-11-12 08:38:08 · 771 阅读 · 0 评论 -
node --- > [跨域] 预检请求
简单请求若满足所有下述条件,则该请求可视为“简单请求”:使用下列方法之一:GETHEADPOSTContent-Type: (仅当POST方法的Content-Type值等于下列之一才算做简单需求)text/plainmultipart/form-dataapplication/x-www-form-urlencoded预检会出现的问题...原创 2019-11-04 09:35:01 · 554 阅读 · 0 评论 -
node --- > 模拟express实现一个简单的服务器
目标使用express实现一个监听3000端口的http服务如下const express = require('express');const app = express();app.get('/', (req, res) => { res.end('Hello Express');})app.get('/users',(req, res)=>{ res...原创 2019-11-03 16:01:57 · 189 阅读 · 0 评论 -
node --- > 模块化连接MongoDB数据库的参数设置方案之一
数据库的初始化操作连接的数据库的名称包含连接数据库初始化所有的Schemas暴露给其他页面使用的接口假设写在 database/init.js 中const mongoose = require('mongoose');// 连接的数据库的名称是 lzhhc-vueconst db = 'mongodb://localhost/lzhhc-vue'const glob = r...原创 2019-09-30 16:33:13 · 358 阅读 · 0 评论 -
node --- > 监听路由,读取json文件,向MongoDB中写入数据
开始假设读取的文件为newGoods.json假设数据的在MongoDB数据库中,集合的规则是Goods下面将用到koa-router:监听路由,并调用指定的函数mongoose:node中操作MongoDB的接口库fs:node的原生模块,用于读取/写入文件const Router = require('koa-router');let router = new Rou...原创 2019-09-30 16:38:05 · 322 阅读 · 0 评论 -
node --- > 游走在客户端和服务器间的http
占个坑明天写.哈哈哈原创 2019-07-09 22:44:27 · 133 阅读 · 0 评论 -
mongoose --- > 建立一个集合规则,并导出.
使用mongoose写一个集合的规则首先要设计数据结构下面是newGoods.json里面的一条数据 { "ID": "ff89cf2e14e143dc9e49ad75f7bc7bb0", "GOODS_SERIAL_NUMBER": "6901844910651", "SHOP_ID": "402880e860166f3c0160167897d60002", ...原创 2019-09-30 16:25:34 · 592 阅读 · 0 评论 -
node --- > 使用mongoose连接mongoDB,并初始化所有的Schema
写了一个init.js函数使用了glob来对协助完成(https://github.com/isaacs/node-glob)连接的数据库的名称(smile-vue)连接数据库操作:connect断线重开连接失败连接成功初始化所有的Schemas暴露给其他页面使用的接口const mongoose = require('mongoose');const db = 'm...原创 2019-09-29 16:40:21 · 498 阅读 · 0 评论 -
node --- > koa、Mongoose、vue联系知识梳理
前端、后端联系知识梳理以打开浏览器,访问login为栗打开浏览器,访问localhost:8080/#/loginsrc/router/index.js 会根据 /login 找到对应的Login(src/components/pages/Login.vue)组件, 然后渲染到浏览器当输入用户名和密码,点击登录按钮后根据Login组件中配置的axios请求向后端发送请求.请求的url...原创 2019-09-29 11:31:05 · 216 阅读 · 0 评论 -
node --- > 一个很好用的包json-server
这个第三方包,可以将json文件暴露出来,用http获取. (data.json如下)下载依赖:npm install --g json-server查看是否含有json-serverjson -sever --version启动json-server参考:https://www.npmjs.com/package/json-server...原创 2019-08-07 21:48:29 · 364 阅读 · 0 评论 -
node --- > 使用node连接mysql
1.确保下载了mysql,且mysql处于打开状态.2.确保下载了node,并成功安装:https://nodejs.org/en/ (小黑窗 node -v 查看)3.安装node操作mysql的依赖包:# 命令行npm install --save -mysql# 注:如果没有package.json 建议先使用 npm init -y 初始化正题// app.js...原创 2019-08-05 15:43:14 · 149 阅读 · 0 评论 -
node --- > 在express中配置使用模板引擎(art-template)
下载依赖:npm install --save art-template express-art-template配置:// app.jsconst express = require("express");const app = express();app.engine("html", require("express-art-template"));使用: 例如处理浏览器GE...原创 2019-08-05 08:59:35 · 338 阅读 · 0 评论 -
node --- > 使用express.Router与body-parser
express框架提供了一个Router方法,用于监听路由// 命令行(windows*64)npm install express --save// jsconst express = require("express");const router = express.Router();// 处理http://host:port/students/ 路由(GET方法)r...原创 2019-08-04 21:56:30 · 572 阅读 · 0 评论 -
node --- > 在node中使用mongoose&&mongoDB的安装
*首先确保,你的电脑安装了mongodb,网址: mongodb官网*使用npm安装 mongoose: mongoose官网 ps:mongoose是Node中操作mongoDB的第三方插件.用于提高数据库操作效率(相当于在mongoDB上封装了一次,暴露出更友好的API)Mongoose1.下载依赖 在命令行(windows*64)npm init -y # 快速初始化pack...原创 2019-08-04 20:27:13 · 609 阅读 · 0 评论 -
node --- > 使用nrm改变npm的源
安装nrm:// linux$ [sudo] npm install --global nrm// windows npm install --global nrm检测速度:// linux $ nrm test// windowsnrm test查看源:// linux $ nrm ls// windowsnrm ls注:*代表当前正在使用的源(当前...原创 2019-07-23 20:26:47 · 398 阅读 · 0 评论 -
Node --- > EventProxy的原理
EventProxy来自于Backbone的事件模块,Backbone的事件模块是Model、View模块的基础功能,在前端有广泛的使用。它在每个非all事件触发时都会触发一次all事件,相关代码如下:// Trigger an event, firing all bound callbacks. Callbacks are passed the// same arguments as 'tr...转载 2019-03-19 11:20:19 · 249 阅读 · 0 评论 -
node --- > http数据上传
// 通过报头的Transfer-Encoding或Content-Length即可判断请求中是否带有内容var hasBody = function(req) { return 'transfer-encoding' in req.headers || 'content-length' in req.headers;};// 在HTTP_Parser解析报头结束后,报文内容部分会...转载 2019-03-21 16:46:23 · 291 阅读 · 0 评论 -
npm --- > 包的发布与导入
安装好NODE后,下面演示如何编写一个包,并将其发布到NPM仓库中,最后通过NPM安装回本地.以下例子是在windows*64环境下运行的.1.编写模块exports.sayHello = function(){ return 'Hello World';}将上述代码保存在hello.js中2.初始化包描述文件:使用npm init指令,快速生成包描述文件按照提示一步一...原创 2019-03-18 09:18:05 · 994 阅读 · 0 评论 -
Node --- > Basic认证
Basic认证: 当客户端与服务器端进行请求时,允许通过用户名和密码实现的一种身份认证方式.// 如果一个页面需要Basic认证,它会检查请求报文头中的Authorization字段的内容,该字段的值由认证方式和加密值构成:$ curl -v "http://user:pass@www.baidu.com/"> GET / HTTP/1.1> Authorization: Ba...转载 2019-03-21 14:32:01 · 172 阅读 · 0 评论 -
Node --- > 构建一个HTTP服务
代码如下:var http = require('http');http.createServer(function (req, res){ res.writeHead(200,{'Content-Type': 'text/plain'}); res.end('Hello World\n');}).listen(1337, '127.0.0.1');console.log('Ser...转载 2019-03-20 15:25:48 · 97 阅读 · 0 评论 -
javascript --- > 实战中体会jsonp
准备:1.需要node环境,node环境配置 -> 百度搜索 “node环境配置” (网上太多了)node是否安装成功指令如下:创建如下页面结构:html结构如下:// jsonp.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> ...原创 2019-09-02 17:03:18 · 105 阅读 · 0 评论