node

深入理解nodejs event loop机制

99封情书 提交于 2019-12-31 08:14:58
浏览器环境和nodejs环境的事件循环机制是不一样的,首先看一个demo: 在浏览器环境中运行结果如下: 在nodejs环境中运行结果如下: 上面例子说明浏览器和nodejs的时间循环是有区别的。 nodejs的事件处理 nodejs采用V8作为js的解析引擎,而I/O处理方面使用自己设计的libuv,libuv是一个基于事件驱动的跨平台抽象层,封装了不同操作系统的一些底层特性,对外提供统一API,事件循环机制也是在它里面实现的, 核心代码参考 : 根据Nodejs官方介绍,每次事件循环都包含了6个阶段,对应libuv源码中的实现,如下图: timers阶段:这个阶段执行timer(setTimeout、setInterval)的回调 I/O callbacks阶段:执行一些系统调用错误,比如网络通信的错误回调 idle,prepare阶段:仅供node内部使用 poll阶段:获取新的I/O事件,适当的条件下node将阻塞在这里 check阶段:执行setImmediate()的回调 close callbacks阶段:执行socket的close事件回调 重点看timers、poll、check这3个阶段,因为日常开发中的绝大部分异步都是在这3个阶段处理。 timers阶段 timers是事件循环的第一个阶段,node会去检查有无过期的timer

C语言链表实现冒泡法排序

雨燕双飞 提交于 2019-12-31 02:01:53
功能是:从键盘输入字符以空格隔开 当输入q或者Q时按回车表示输入结束 先放出main函数 int main(){ MyNode *myNode = (MyNode *)malloc(sizeof(MyNode)); if (NULL == myNode) { return 0; } getNum(myNode); sortList(myNode); printStr(myNode); freeStr(myNode); return 0; } 然后就结构体 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct mynode{ long value; struct mynode *next; }MyNode; 最后是几个方法 void getNum(MyNode *myNode){ char s[20]; printf("please input num and end with q/Q\n"); scanf("%s", s); while ((strcmp(s, "q") != 0) && (strcmp(s , "Q") != 0)) { MyNode *temp = (MyNode *)malloc(sizeof(MyNode)); if (NULL == temp) { return;

我的k8s随笔:Kubernetes 1.17.0 部署

依然范特西╮ 提交于 2019-12-30 22:49:39
k8s集群部署过程实践笔记共两种版本:一为专注部署操作,一为涉及部署操作讲解。本文为前者。 本文介绍了如何在两台 ubuntu 16.04 64 bit 双核 CPU 虚拟机上使用 kubeadm 部署 Kubernetes 1.17.0 集群的过程,网络插件为 flannel,镜像源为阿里云。本文具有一定实践参考意义。 一、环境 两台ubuntu 16.04 64 bit,2GB内存,双核 CPU。 环境要求和设置: 两主机,一为 master,一为 node。master 主机名称为 ubuntu。node 主机名称为 node。操作系统的主机名称要确保不同。 工程目录为:$HOME/k8s。 所有操作使用 root 权限执行(注:理论上普通用户亦可,为避免权限问题,故出此下策)。 本文部署的k8s版本为1.17.0。部署日期约2019年12月中旬~下旬,请注意时效性。 二、安装docker apt-get install docker.io 新加 /etc/docker/daemon.json 文件,添加: { "registry-mirrors": [ "https://a8qh6yqv.mirror.aliyuncs.com", "http://hub-mirror.c.163.com" ], "exec-opts": ["native.cgroupdriver

nodejs介绍

好久不见. 提交于 2019-12-30 22:05:24
简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 Node.js 安装配置 本章节我们将向大家介绍在window和Linux上安装Node.js的方法。 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例。 Node.js安装包及源码下载地址为: https://nodejs.org/en/download/ 。 你可以根据不同平台系统选择你需要的Node.js安装包。 Node.js 历史版本下载地址: https://nodejs.org/dist/ 注意: Linux上安装Node.js需要安装Python 2.6 或 2.7 ,不建议安装Python 3.0以上版本。 Window 上安装Node.js 你可以采用以下两种方式来安装。 1、Windows 安装包(.msi) 32 位安装包下载地址 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.msi 64 位安装包下载地址 : https://nodejs.org/dist/v4.4.3

NodeJS安装教程

僤鯓⒐⒋嵵緔 提交于 2019-12-30 22:05:11
惠善一的博客:https://huishanyi.club 1.   想要使用Node.js,必须先配置开发环境 。进入Node.js官网下载指定平台安装包(nodejs.org),Windows系统下载安装红框的安装包,macOS 下载安装蓝框的安装包,看清楚自己电脑是32位还是64位。一直下一步直到完成就好。    Node.js的开发非常活跃,更新时以两个版本更新:   Current版本:可以体验Node的新特性;   LTS版本:没有激进的新特性更新,更加适应于生产环境;   Current版是不稳定,LTS版稳定。    2.  配置开发环境完毕后,在cmd控制面板输入node(空格)--version或者node(空格)-v,回车后会立即得到一个结果,而这个结果就是Node.js的版本号,即安装成功。    3.   交互型运行 。在cmd控制面板中输入node,回车后即进入NodeJS编译环境,在此环境中可以输入任何符合NodeJS语法规范的代码,回车立刻得到结果。    4.   编译型运行 。通过cmd控制面板进入你想运行的js文件的所在目录文件夹,假如你的sum.js文件在桌面,进入(cd为进入命令)桌面目录(Desktop),输入node(空格)sum.js,回车即可得到结果。       5.   node版本管理工具: 若感觉会长期进行NodeJS开发

nodejs安装

女生的网名这么多〃 提交于 2019-12-30 22:03:44
本安装教程以Node.js v0.10.26 版本为例。 Node.js安装包及源码下载地址为: http://www.nodejs.org/download/ 。 Windowv 上安装Node.js Windows 安装包(.msi) : 32 位安装包下载地址 : http://nodejs.org/dist/v0.10.26/node-v0.10.26-x86.msi 64 位安装包下载地址 : http://nodejs.org/dist/v0.10.26/x64/node-v0.10.26-x64.msi 安装步骤: 步骤 1 : 双击下载后的安装包 node-v0.10.26-x86.msi,如下所示: 步骤 2 : 点击以上的Run(运行),将出现如下界面: 步骤 3 : 勾选接受协议选项,点击 next(下一步) 按钮 : 步骤 4 : Node.js默认安装目录为 "C:\Program Files\nodejs\" , 你可以修改目录,并点击 next(下一步): 步骤 5 : 点击树形图标来选择你需要的安装模式 , 然后点击下一步 next(下一步) 步骤 6 :点击 Install(安装) 开始安装Node.js。你也可以点击 Back(返回)来修改先前的配置。 然后并点击 next(下一步): 安装过程: 点击 Finish(完成)按钮退出安装向导。

NodeJS 使用 officegen 生成 Excel, PowerPoint, 和Word文档

末鹿安然 提交于 2019-12-30 13:51:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> NodeJS 使用 officegen 生成 Excel(.xlsx),PowerPoint(.pptx)和Word(.docx)文档 officegen 模块可以为Microsoft Office 2007及更高版本生成Office Open XML文件。此模块不依赖于任何框架,您不需要安装Microsoft Office,因此您可以将它用于任何类型的JavaScript应用程序。输出也是流而不是文件,不依赖于任何输出工具。此模块应适用于支持Node.js 0.10或更高版本的任何环境,包括Linux,OSX和Windows。 此模块生成Excel(.xlsx),PowerPoint(.pptx)和Word(.docx)文档。 Officegen还支持带有嵌入数据的PowerPoint本机图表对象。 项目地址: https://github.com/Ziv-Barber/officegen 安装 git clone git://github.com/Ziv-Barber/officegen.git npm install officegen npm install Ziv-Barber/officegen#master 依赖模块 archiver setimmediate fast-image-size

如何线上部署node.js项目

烈酒焚心 提交于 2019-12-30 13:35:41
来源: http://blog.csdn.net/chenlinIT/article/details/73343793 前言 最近工作不是很忙,在空闲时间学习用node+express搭建自己的个人博客。目前进度大概进行到一半了,等不及想部署上线看下效果(学习阶段的人总是很兴奋,有一点点小成果就想马上看看 =_=!)。 于是买了个阿里云服务器,自己尝试来部署一下,捣鼓了两天终于捣鼓好了,这里来记录一下,以免后面又忘了。 参考: 阿里云帮助文档: 部署Node.js项目(CentOS) 推酷文章 简书文章 segmentfault文章 pm2使用方法 一、买服务器 比较穷,选了最低配的。30/月,1核,1G内存,1M带宽,操作系统:CentOS 7.2 64位。作为一个从来没有解除过阿里云的菜鸟,这两天真是踩了无数坑,不过也学到了很多东西。 二、开始捣鼓,来看看怎么部署。 网上的教程很多,但还是想自己来写一下,这样自己好理解,也能加深记忆。首先远程链接,阿里云的远程连接功能不会用,输入用户名后然后输入登录密码,总是输入不完就跳了,不知道咋回事。因为服务器系统是Linux的,我电脑是windows 7的系统。如果服务器是windows server的系统可以使用电脑的远程桌面连接,这里就不细说了,不会的上网搜一下就行了。windows远程连接Linux网上说有两种常用的远程连接工具

在Windows下开发NodeJS的C/C++原生扩展

a 夏天 提交于 2019-12-30 12:56:25
准备工作 (1) 本机系统说明:本人机器为win7 64位,32位也可以。 (2) 软件 安装:    VISUAL C++ 2010 EXPRESS(Visual Studio 2010也可以);   windows下安装NodeJS,可以从官网 http://www.nodejs.org 下载msi版进行快捷安装; (3) 源码准备:从官网下载Source Code版本node-v0.10.5.tar(笔者下载时的最新代码版本为v0.10.5),解压到windows任意目录下,如D:\node-v0.10.5。 编写node的C/C++原生扩展 [1] 打开Windows命令行cmd.exe,进入D:\node-v0.10.5,执行vcbuild.bat release,最后会在D:\node-v0.10.5\Release目录下可以找到编译好的node.exe、node.lib等文件。 [2] 制作编译安装批处理文件,此处命名为nodins.bat,文件内容如下: @echo off if "%1"=="" goto help mkdir "%1" mkdir "%1"\include copy /y src\node.h "%1"\include copy /y src\node_object_wrap.h "%1"\include copy /y src\node

k8s上的基础概念和术语

Deadly 提交于 2019-12-30 10:30:05
kubernetes基本概念和术语 kubeernetes中的大部分概念如Node,Pod,Replication Controller ,Serverce等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过 kubernetes提供的kubectl工具(或者API编程调用)执行增删改查等操作并将其保存在etcd中持久化存储。从这个角度来看,kubernetes其实 是一个高度自动化的资源控制系统,它通过跟踪对比etcd库里保存的“资源期望状态”与当前环境中的“实际资源状态”的差异来实现自动控制 和自动纠错的高级功能。 Master Master:集群控制节点。每个Kubernetes集群里需要有一个Master节点来负责整个集群的管理和控制。基本上Kubernetes所有的控制命令都是 发给它,它来负责具体的执行过程,我们后面所有执行的命令都是在Master节点上运行的。Master节点通常会占据一个独立的X86服务器(或者 一个虚拟机),一个主要的原因是它太重要了,它是整个集群的“首脑”,如果它宕机或者不可用,那么我们所有的控制命令都失效。 在Master节点上运行着一下一组关键进程: Kuberneres API Server(kube-apiserver),提供了HTTP Rest 接口的关键服务进程,是Kubernetes里所有资源的增删改查等操作的唯一入口,也是