node

NodeJs的简介及安装

时光毁灭记忆、已成空白 提交于 2020-01-12 00:15:41
首先 分享一下NodeJs的应用场景吧; Web聊天室(IM):Express + Socket.io socket.io一个是基于Nodejs 架构 体系的,支持websocket的协议用于时时通信的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io完全由javascript实现。实现群聊或者私聊的功能! Web爬虫:Cheerio/Request cheerio 是一个为服务器特别定制的,快速、灵活、封装 jQuery 核心功能工具包。Cheerio包括了 jQuery核心的子集,从jQuery库中去除了所有DOM不一致性和浏览器不兼容的部分,揭示了它真正优雅的API。Cheerio工作在一个非常简 单,一致的DOM模型之上,解析、操作、渲染都变得难以置信的高效。基础的端到端的基准测试显示Cheerio大约比JSDOM快八倍(8x)。 Cheerio封装了@FB55兼容的htmlparser,几乎能够解析任何的 HTML 和 XML document。 Web博客:Hexo Hexo 是一个简单地、轻量地、基于Node的一个静态博客框架。通过Hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。 发布时,Hexo可以部署在自己的Node服务器上面,也可以部署github上面。对于个人用户来说,部署在github上好处颇多

Kubernetes之Namespace组件深入

白昼怎懂夜的黑 提交于 2020-01-11 23:05:56
Namespace kubectl get namespace[获取所有的namespace] [ root @manager - node demo ] # kubectl get namespace NAME STATUS AGE default Active 4d 22 h kube - node - lease Active 4d 22 h kube - public Active 4d 22 h kube - system Active 4d 22 h kubectl get ns[获取所有的namespace] [ root @manager - node demo ] # kubectl get ns NAME STATUS AGE default Active 4d 23 h kube - node - lease Active 4d 23 h kube - public Active 4d 23 h kube - system Active 4d 23 h [ root @manager - node demo ] # kubectl get pods -n {namespace_name} [获取某个namespace下的pod] [ root @manager - node demo ] # kubectl get pods - n kube - system

001.Kubernetes简介

半腔热情 提交于 2020-01-11 18:40:18
一 Kubernetes概述 名称 Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”。Google 在 2014 年开源了 Kubernetes 项目,Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 1.1 容器发展由来 传统部署时代: 早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况,结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展,并且组织维护许多物理服务器的成本很高。 虚拟化部署时代: 作为解决方案,引入了虚拟化功能,它允许您在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化功能允许应用程序在 VM 之间隔离,并提供安全级别,因为一个应用程序的信息不能被另一应用程序自由地访问。 因为虚拟化可以轻松地添加或更新应用程序、降低硬件成本等等,所以虚拟化可以更好地利用物理服务器中的资源,并可以实现更好的可伸缩性。 每个 VM 是一台完整的计算机,在虚拟化硬件之上运行所有组件

NodeJS使用 node-rsa 加密解密

a 夏天 提交于 2020-01-11 09:56:24
const NodeRSA = require('node-rsa'); const fs = require('fs'); // 公钥加密 function encrypt(data) { const publicKey = fs.readFileSync('./files/rsa_public_key_1024.txt'); const nodersa = new NodeRSA(publicKey); // nodersa.setOptions({ encryptionScheme: 'pkcs1' }); const encrypted = nodersa.encrypt(data, 'base64'); return encrypted; } // 私钥解密 function decrypt(data) { const privateKey = fs.readFileSync('./files/rsa_private_key_1024.txt'); const nodersa = new NodeRSA(privateKey); const decrypted = nodersa.decrypt(data, 'utf8'); return decrypted; } // 实例 const data = { name: 'owen', age: 20 }; const

NPM概述及使用简介

旧时模样 提交于 2020-01-11 09:25:54
什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node包的发布、传播、依赖控制。npm提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。 为什么要使用 NPM npm是随同Node一起安装的包管理工具,能解决Node代码部署上的很多问题,常见的场景有以下几种: 允许用户从npm服务器下载别人编写的第三方包到本地使用。 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。 npm的背后,是基于CouchDB的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。 如何使用 NPM npm的安装 npm不需要单独安装。在安装Node的时候,会连带一起安装npm。但是,Node附带的npm可能不是最新版本,最后用下面的命令, 更新到最新版本: $ sudo npm install npm@latest -g Window 系统更新命令: npm install npm -g 也就是使用npm安装自己

node.js从入门到起飞

孤街浪徒 提交于 2020-01-11 07:53:37
第一个node程序:   首先创建一个js文件,命名index.js(可随意),然后在文件里面输入 : console.log("Hello World");   使用 Git Bash Here 打开装有index.js文件的文件夹,输入指令:node index.js 这样就可以运行输出 Hello World 了    这样的模式叫做 脚本模式 ,也就是 通过运行脚本 来达到效果 还有一种方法,叫 交互模式 ,它是直接在nond 上输入代码,结果也是直接在上面显示。  例如:输入node 回车 在下面直接console.log('node交互模式');打印,结果立马就在下面显示出来。   至于为什么下面还有一个undefined 我也不清楚,还没有去研究是什么原因会导致出现这个undefined 的,但是,这样也不影响使用,所以可以先不管。 下面来创建一个node应用,首先Node.js 应用是由哪几部分组成的: 引入 required 模块: 我们可以使用 require 指令来载入 Node.js 模块。 创建服务器: 服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。 创建 Node.js 应用   步骤1: 引入

vue.js安装步骤教程

十年热恋 提交于 2020-01-11 06:18:01
1.安装node.js 从node.js官网下载并安装node 安装过程很简单,一直点下一步就ok了。 1.1我们通过打开命令行工具(win+R),输入node -v查看node的版本,若出现相应的版本号说明你安装成功了 1.2.npm包管理器,是集成在node中的,所以安装了node也就有了npm,直接输入 npm -v 命令,显示npm的版本信息。 现在node环境已经安装完成了,npm包管理器也有了,听说由于有些npm资源被屏蔽或者是国外资源的原因,经常会导致npm安装依赖包的时候失败,所以我们还需要npm的国内镜像----cnpm(淘宝的镜像) 2.安装cnpm 在命令行中输入 npm install -g cnpm --registry=https://registry.npm.taobao.org ,然后等待,没报错表示安装成功,(我的已经安装过了,显示更新成功的信息),如下图: 完成之后,我们就可以用cnpm代替npm来安装依赖包了。 3.安装vue-cli脚手架构建工具 在命令行运行命令npm install -g vue-cli 然后等待安装完成。如下图: 通过以上三个步骤,我们所需要准备的环境和工具都准备好了,接下来就开始使用vue-cli来构建项目。 首先我们要选择存放项目的位置(在这里我就进入E盘了,你也可以进入其他盘符来创建)用DOS命令e:先进到我的E盘

替罪羊树

孤街浪徒 提交于 2020-01-11 05:39:00
替罪羊树 替罪羊树 是啥? 就是一个平衡树,只不过没有旋转操作 那遇到不平衡的咋办呢? 重构。 怎么重构?先求出不平衡子树的中序遍历(这个中序遍历肯定是有序的递增的)于是就可以分治建树,取中间那个点当根左边的当左子树、右边的当右子树……递归下去 于是就把不平衡的子树变成平衡的子树。 例题: 洛谷模板 P3369 几种操作 结构体存的信息: struct Node { int l , r ; //左右节点编号 int val ; //当前节点的值 int flag ; //当前节点是否被删除 删除为0 没删除为1 int size ; //size 是这颗子树的大小(包含被删除的节点) int fact ; //fact是实际的大小(不包含删除的节点) } node [ maxn ] ; 添加节点 :二叉搜索树那样添加就好,最后添加完了之后判断是否需要重构。 void ins ( int x , int & no ) { if ( ! no ) { no = newnode ( x ) ; check ( root , no ) ; return ; } node [ no ] . fact ++ ; node [ no ] . size ++ ; if ( x < node [ no ] . val ) ins ( x , node [ no ] . l ) ; else ins

node读书笔记

大城市里の小女人 提交于 2020-01-11 04:58:12
node读书笔记 Node.js不是JS应用、而是JS运行平台 Node.js 采用C++语言编写而成, 是一个 Javascript 的运行环境。 Node.js 采用了 Google Chrome 浏览器的 V8 引擎, 性能很好, 同时还提供了很多系统级的 API, 如文件操作、网络编程等。浏览器端的 Javascript 代码在运行时会受到各种安全性的限制,对客 户系统的操作有限。相比之下,Node.js 则是一个全面的后台运行时,为 Javascript 提供了其他 语言能够实现的许多功能。 Node.js采用事件驱动、异步编程,为网络服务而设计 Node.js 的网络模块特别多, 包括 HTTP、 DNS、 NET、UDP、HTTPS、TLS 等,开发人员可以在此基础上快速构建 Web 服务器。以简单的 helloworld.js 为例: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80, "127.0.0.1"); Node.js的特点 事件驱动 非阻塞I/O 单线程 Node.js应用案例 善于I/O

node学习之url

孤街浪徒 提交于 2020-01-11 04:27:57
url 模块 url 模块用于处理与解析 URL。 使用方法如下: url 类: Url { protocol: null, // 请求协议,小写。'http:' slashes: null, // 协议要求的斜杠(冒号后) true或false auth: null, // url中的验证信息。 'user:pass' host: null, // 完整的URL小写主机部分,包含端口信息。'host.com:8080' port: null, // 主机的端口号:'8080' hostname: null, // hostname: 域名中的小写主机名; 'host.com' hash: null, // URL的“#”后面部分(包括 # 符号) search: '?id=10018', // URL中得查询字符串,包含开头的问号 query: 'id=10018', // 查询字符串中得参数部分,或者使用querystring.parse()解析后返回的对象。 pathname: '/v1/customer', URL中的路径部分,在主机名后,查询字符前,包含第一个斜杠。 path: '/v1/customer?id=10018', // pathname和search连在一起 href: '/v1/customer?id=10018' // 准备解析的完整的URL