node

node 版本管理工具--nvm

隐身守侯 提交于 2020-03-25 20:24:02
  使用背景: 项目中使用了jquery-weui的左滑删除组件,但在苹果上使用会有左滑点击穿透的现象,只能改源码了。 在github上找,发现是gulp构建的,但版本很低,对于node版本大概要4.5.0才行,本机node版本过高用不了,所以把 node卸载了装nvm来管理。   使用步骤:     1. 卸载本机node     2. 安装nvm 安装路径不要有空格 下载地址: https://github.com/coreybutler/nvm-windows/releases     3. 直接使用nvm安装node会很慢,所以先设置镜像,去nvm安装路径下settings文件添加以下地址       node_mirror: https://npm.taobao.org/mirrors/node/       npm_mirror: https://npm.taobao.org/mirrors/npm/     4. 在命令行使用命令: nvm install 12.4.0 安装对应版本就好,这里是安装12.4.0     5. nvm list命令是查看node版本     6. nvm use [版本号] 是切换node版本     7. 用node -v即可查看node版本是否切换成功,接下来就是node正常使用了 来源: https://www.cnblogs

kubernetes 新加入节点

岁酱吖の 提交于 2020-03-25 16:45:03
一、kubernetes 对于已经搭建好的集群,新加入节点 1.新的node 节点需要装好:docker kubelet kube-proxy 2.kubeadm reset 二、加入集群 1.在主节点查询jion的token kubeadm token list 若token 创建时间超过24H,token失效,重新创建有效的token kubeadm token create 2.新的node 加入集群 kubeadm join ${Mater_ip}:6443 --token 40dup1.urffu06eu0u1hzy3 --discovery-token-ca-cert-hash kubectl get node 3.当某个节点node_x故障,需要临时处理 可以先不让这个节点再调度任务,排除故障后,再恢复节点 kubectl cordon node_x kubectl drain node_x 平滑的将该node_x 上面的业务pod 迁移到另外安全的node 节点上。 维护好node_x节点后,恢复该node_x节点可调度 kubectl uncordon node_x 来源: 51CTO 作者: Mart_sea 链接: https://blog.51cto.com/13396187/2481651

如何组织Node.js REST API

99封情书 提交于 2020-03-25 07:04:54
当我开始使用Node.js在服务器端构建REST API时,我一次又一次地为同一个问题苦苦挣扎,所以分享一片文章给大家,感觉还不错, 文件夹结构应该如何? 显然,这个问题没有一个完美或100%正确的答案,但是在阅读了有关该主题的一些文章之后,我发现了一个非常适合我需要的文件夹结构。因此,今天我想向您展示如何构建我的REST API。 API主要是基于组件的,这使得仅请求我们真正需要的数据变得更加容易。例如,我们有一个 User 组件,其中包含有关用户的所有信息。 要提到的一件事是,我将 express.js 用作网络框架,将 TypeORM 用作ORM。让我们看一下结构。 目录: 根 nodejs-api-structure └───dist │ └───logs │ └───node_modules │ └───src │ │ README.md │ ... 这种结构没什么特别的,对您来说不应该是新的。它实际上是一个基本的Node.js设置。有趣的是 src 我们关注的文件夹。 那我们这里有什么? nodejs-api-structure └───src │ └───config │ └───api │ │ │ └───components │ │ │ └───middleware │ │ │ │ routes.ts │ │ server.ts │ └───services │

Nodejs入门(二)

拟墨画扇 提交于 2020-03-25 06:41:23
Nodejs基础api 1、path path模块提供了很多实用的工具函数,用于处理文件与目录的路径,下面是它的api: normalize 方法可以输出规范格式的path字符串 join 方法用于拼接path字符串 resolve 方法用于将相对路径解析为绝对路径 name 方法用于查看文件名 basename查看文件名 dirname查看所在路径 extname查看扩展名 parse与format,parse用于将一个路径字符串返回成一个对象,而format则正好相反,如果有时候你需要修改一个路径的话,就可以先parse修改之后再format回去 delimiter 提供不同系统下的分隔符,windows系统(;)和posix(:)系统分隔符不同。sep 返回各平台的分隔符(Windows\,POSIX/) //delimiter console.log(process.env.PATH) 'C:\Windows\system32;C:\Windows;C:\Program Files\node' process.env.PATH.split(path.delimiter) ['C:\Windows\system32', 'C:\Windows', 'C:\Program Files\node\'] //sep 'foo\bar\baz'.split(path.sep) 返回:

Nodejs事件监听模块

浪子不回头ぞ 提交于 2020-03-25 03:37:21
nodejs里面是不存在浏览器里面都冒泡,捕获这些行为的,所以Nodejs实现了events这个模块,里面大多数的模块都集成了这个模块,所以events是node模块里面最重要都一个模块,他对外只暴露一个对象,就是EventEmitter,EventEmitter作用只有两个,分别是,事件都发送和事件都监听。emit支持多个事件监听,最大值是10个,也就是可以为某个事件添加10个监听函数,来做10件事情,比如 var EventEmitter = require('events').EventEmitter; var life = new EventEmitter(); //这里不用on,也可以用addEventListener life.on('doSth', function(who){   console.log('给 ' + who + ' 倒水'); }) life.emit('doSth','Sunny'); 这个on最多可以添加10个,添加11个后,会报出一个警告 但是我们是可以修改事件监听都最大值的,加上这行代码 life.setMaxListeners(11) 放在事件监听以前 事件没有emit,on相应里面的动作是不会执行的,怎么判断一个事件emit了呢 var hasEmit = life.emit('doOther','lucy'); 如果注册了

AQS的数据结构及实现原理

可紊 提交于 2020-03-24 23:43:42
  接下来从实现角度来分析同步器是如何完成线程同步的。主要包括:同步队列、独占式同步状态获取与释放、共享式同步状态获取与释放以及超时获取同步状态等。 1、同步队列   同步器依赖内部的一个同步队列来完成同步状态的管理。当线程获取同步状态失败时,会被加入到队列中,并同时阻塞线程。当同步状态释放时,会把首节点中的线程唤醒,使其在册尝试获取同步状态。(疑问: 1、确定只唤醒首节点么,这不就是公平方式获取了么?2、首节点是否能一定获取到锁,为什么? )   a、确定只唤醒了首节点,的确这个获取方式相对比较公平,虽然新节点也可能优先获取到锁。待稍后对比重入锁获取过程;     [对比过后]:重入锁获取逻辑,就是先判断是否有人在用锁,如果有,判断是不是当前线程,如果不是,则当前线程排队,一旦进入排队队列,其实对这个队列来说,真的就是公平锁了,不公平的地方在于后来新来的线程可能会由于首节点刚好释放而获取到锁,造成“插队”;   b、首节点不一定能获取到,因为可能有新线程正好进入,然后获取了锁;   同步队列中的数据类型为Node,其中各个属性描述如下: int waitStatus 等待状态: 1 ,在队列中等待的线程等待超时或者被中断,从队列中取消等待; -1,后继节点处于等待; -2,节点在等待队列中,当condition被signal()后,会从等待队列转到同步队列; -3

kubeadm部署kubernetes v1.17.4 单master节点

不羁岁月 提交于 2020-03-24 17:46:35
环境说明: #操作系统:centos7 #docker版本:19.03.8 #kubernetes版本:v1.17.4 #K8S master 节点IP:192.168.3.62 #K8S worker节点IP:192.168.2.186 #网络插件:flannel #kube-proxy网络转发: ipvs #kubernetes源:使用阿里云源 #service-cidr:10.96.0.0/16 #pod-network-cidr:10.244.0.0/16 部署准备: 操作在所有节点进行 修改内核参数: 关闭swap vim /etc/sysctl.conf vm.swappiness=0 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables=1 sysctl -p 临时生效 swapoff -a && sysctl -w vm.swappiness=0 修改 fstab 不在挂载 swap vi /etc/fstab /dev/mapper/centos-swap swap swap defaults 0 0 安装docker yum-config

KubeSphere排错实战(二)

∥☆過路亽.° 提交于 2020-03-24 17:42:43
接上一篇 《KubeSphere实战排除》 近期在使用kubesphere中也记录了一些使用问题,希望可以对其他人有帮助 八 kubesphere应用上传问题 8.1 文件上传413 将应用部署进入kubesphere中,应用中有设置上传文件功能,测试上次异常无法正常上传,文件上传,ingress413报错,kubesphere使用的是ingress-nginx控制器,可以在其中注解添加k-v来支持, 解决方案:应用路由自定义max body size https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-max-body-size 8.2 大文件上传后端504 大文件上传后端响应504解决方案: proxy read timeoutnginx.ingress.kubernetes.io/proxy-read-timeout 九 跨域问题 kubesphere使用ingress-nginx支持跨域,可以参考以下链接在注解中添加 https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#enable-cors

02 安装nodejs、vue-cli、webpack、webpack-dev-server

≡放荡痞女 提交于 2020-03-24 14:30:56
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,运行在服务器端。nodejs所携带的npm包管理命令可以方便的安装vue-cli, webpack, webpack-dev-server等命令,而这些命令是创建或者运行vue项目的基础。 1、安装nodejs 在http://nodejs.cn/download/下载nodejs的windows安装包,作者使用的版本是12.16 双击安装包,一直下一步直到完成 验证是否安装成功,打开命令行,输入以下命令 node -v 回车 v12.13.0 npm -v 回车 6.12.0 2、安装常用命令 打开命令行,输入以下命令 # 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org # 安装webapck cnpm install -g webpack # 安装webpack-dev-server cnpm install -g webpack-dev-server # 安装webpack-cli cnpm install -g webpack-cli # 安装vue-cli cnpm install -g vue-cli 以上,我们安装了nodejs,然后通过npm命令安装了后面强依赖的几个常用命令。 来源:

Elasticsearch

ε祈祈猫儿з 提交于 2020-03-24 13:15:32
官网直达 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况 下载 https://www.elastic.co/cn/downloads/elasticsearch 解压,启动,,普通用户操作i 启动之前先改点东西, [es@localhost elasticsearch-7.6.1]$ grep -n "^[a-Z]" config/elasticsearch.yml 17:cluster.name: my-application 23:node.name: node-1 55:network.host: 0.0.0.0 72:cluster.initial_master_nodes: ["node-1"]   启动会有很多报错,,粘贴百度, ./bin/elasticsearch -d 后台启动 先不要加 “-d”后台,,因为可能出现报错还得去找日志,,这样报错直接显示,, 成功后,打开浏览器,, 来源: https://www.cnblogs.com/5444de/p/12558264.html