node

CommonJS和AMD/CMD

孤街浪徒 提交于 2020-01-28 14:10:33
先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套! 于是下面三个模块规范出来了,这篇文章也出来了(拼出来的 {捂脸笑})。 JS中的模块规范(CommonJS,AMD,CMD),如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已。 现在就看看吧,这些规范到底是啥东西,干嘛的。本文包括这三个规范的来源及对应的产物的原理。 一、CommonJS 1.一开始大家都认为JS是辣鸡,没什么用,官方定义的API只能构建基于浏览器的应用程序,逗我呢,这太狭隘了吧(用了个高端词,嘎嘎),CommonJS就按耐不住了,CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。 在兼容CommonJS的系统中,你可以使用JavaScript开发以下程序: (1).服务器端JavaScript应用程序 (2)

解决让浏览器兼容ES6特性

主宰稳场 提交于 2020-01-28 14:03:34
为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性进行兼容,那么浏览器肯定无法识别我们的ES6代码,好比浏览器根本看不懂我写的let和const是什么东西?只能报错了。这就是浏览器对ES6的兼容性问题。 好消息 哪里有灾难,哪里就有勇士和救兵,针对ES6的兼容性问题,很多团队为此开发出了多种语法解析转换工具,把我们写的ES6语法转换成ES5,相当于在ES6和浏览器之间做了一个翻译官。比较通用的工具方案有babel,jsx,traceur,es6-shim等。 此外,浏览器自身也加快速度兼容ES6的新特性,其中对ES6新特性最友好的是Chrome和Firefox浏览器。 各大转换工具、javascript解析引擎对ES6的支持程度情况,可以参查看这个地址: http://kangax.github.io/compat-table/es6/ 坏消息 即使浏览器对ES6新特性开始渐渐支持,但是这还需要很长一段时间,我们不能百分百依赖浏览器本身对ES6的支持度来开发。 虽然出现了各种转换工具,但是到目前为止,还没有一款工具能百分百将ES6的新特性完美地转换成ES5,因为在ES6新增的内容中,存在一些无法在ES5中找到与之匹配的语法

node基础01:简要介绍

二次信任 提交于 2020-01-28 13:45:25
1.node vs php 优点 性能高(机制问题) 开发效率高(省了不少优化的事) 应用范围广(可以开发桌面系统,electron框架) 缺点 新,人少 中间件少 IDE不完善 2.node的劣势和解决方案 默认不支持多核,使用cluster可以解决 默认不支持服务器集群,node-http-proxy可以解决 使用nginx做负载均衡,静态的由nginx处理,动态由node处理 forever或node-cluster实现灾难恢复 3.框架选择 比较热门的框架有:express,koa,Hapi以及express基础之上的sails。 express:完善,稳定,文档全,社区大 koa:超前,正在完善中 Hapi:复杂,适合做复杂的大型项目 4.学习方法 多看文档 摸索测试 来源: https://www.cnblogs.com/noper/p/6243617.html

nodejs之包教不包会

五迷三道 提交于 2020-01-28 09:45:11
  今天在lesson6的时候,遇到了一个mocha的测试框架,当将代码写好之后,全局安装,项目安装mocha,命令行运行mocha,输出“mocha 不是内部或外部命令”。作者是这样写的”装个全局的 mocha: $ npm install mocha -g 。“” -g 与 非 -g 的区别,就是安装位置的区别,g 是 global 的意思。如果不加的话,则安装 mocha 在你的项目目录下面;如果加了,则这个 mocha 是安装在全局的,如果 mocha 有可执行命令的话,那么这个命令也会自动加入到你系统 $PATH 中的某个地方(在我的系统中,是这里 /Users/alsotang/.nvm/v0.10.29/bin )“;(mac本;)   现在的状态是 卸载了nvm,重新安装了node稳定版。但是在npm i mocha -g 的时候,自动生成了node_nvm,存放在D:\web-software\node_nvm\nvm\npm\node_modules\mocha\bin\mocha这个目录。   说说其他的lesson,lesson7还是mocha,lesson8是supertest依旧是测试用例,也用到了mocha,should;lesson9正则表达式,teacher曾说正则是有一个专门的人去写的,真的吗?什么公司?还是要有一些基础知识的。 lesson10

JS-DOM Element方法和属性

有些话、适合烂在心里 提交于 2020-01-28 07:34:53
JS-DOM Element方法和属性 S -DOM Element 方法和 属性 一,获取html元素 1.getElementByID(id) 通过对元素的ID访问,这是DOM一个基础的访问页面元素的方法. example: <div id="divid">测试</div> <script language="javascript"> var div=document.getElementByID("divid"); alert (div.nodeName); //显示元素名 </script> 如果id在元素中不是唯一的,那么获得的将是第一个ID. 2.getElementsByName(name) 仅用于input radio checkbox等元素,返回名字为name的元素数组 example: <div name="george"></div> <input name="george"></div> <script language=javascript> var ge=document.getElementsByName("george"); alert (georges.length); //获取georges个数,对div唔效果 </script> 3.getElementsByTagName(tagname) 返回具有tagname的元素列表数组

Node.js安装 --- 最简单方便的安装方法,无需手动配置环境变量

为君一笑 提交于 2020-01-28 07:32:03
文章目录 1、下载与安装node 2、检查是否安装成功 3、配置npm 1、下载与安装node 1、点击: Node.js中文网 ,进入之后点击下载 2、根据个人电脑的相应配置下载对应的安装包 3、安装node,一直下一步、下一步就可以了,什么也不要管,Believe me~ 2、检查是否安装成功 按快键键: win+R,输入cmd,在命令窗体中输入node -v,注意中间有一个空格 如果返回一个版本号,就说明安装成功了。 3、配置npm 在使用node前必须配置npm才可以正常的使用,网上的一般方法都是配置环境变量,其实完全可以让一行代码解决, 具体方法: 打开cmd窗体后输入:npm install -g cnpm --registry=https://registry.npm.taobao.org 等待一两分钟左右后显示如下命令,就表示配置成功了。 来源: CSDN 作者: 夕灬颜 链接: https://blog.csdn.net/qq_43332570/article/details/103747002

【年前最后一波装逼】记一次阿里面试,我是如何用一行代码解决约瑟夫环问题的

萝らか妹 提交于 2020-01-28 05:34:30
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3...这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方法一:数组 在大一第一次遇到这个题的时候,我是用数组做的,我猜绝大多数人也都知道怎么做。方法是这样的: 用一个数组来存放 1,2,3 ... n 这 n 个编号,如图(这里我们假设n = 6, m = 3) 然后不停着遍历数组,对于被选中的编号,我们就做一个标记,例如编号 arr[2] = 3 被选中了,那么我们可以做一个标记,例如让 arr[2] = -1,来表示 arr[2] 存放的编号已经出局的了。 然后就按照这种方法,不停着遍历数组,不停着做标记,直到数组中只有一个元素是非 -1 的,这样,剩下的那个元素就是我们要找的元素了。我演示一下吧: 这种方法简单吗?思路简单,但是编码却没那么简单,临界条件特别多,每次遍历到数组最后一个元素的时候,还得重新设置下标为 0,并且遍历的时候还得判断该元素时候是否是 -1。感兴趣的可以动手写一下代码,用这种数组的方式做,千万不要觉得很简单

NodeJS学习笔记(五) fs,http模块

a 夏天 提交于 2020-01-28 04:21:55
Fs模块 在看nodejs介绍的过程中,nodejs对自己的异步I/O是重点突出的说明的。在fs模块中,nodejs提供了异步和同步两种读写方式 Fs.readFile 这个方法是底层fs.read方法和fs.open方法的封装。 fs.readFile(filename, [options], callback) filename String options Object encoding String | Null default = null flag String default = 'r' callback Function 上述代码是直接从API中拷贝过来的。其中options是一个对象,对象里面有encoding和flag。Flag在fs.open方法中讲述; 在API中,中括号里面的参数是可以缺省的 。 回调函数callback的形式如:function(err,data){},其中,err是一个Error对象,没有发生错误,err的值为null,或undefined。Data是文件的内容,这里需要注意,如果options缺省或者没有制定options里面的encoding,这个dataIU是一个Buffer形式表示的二进制数据,如果指定为utf-8,Data中的内容就是通过编码解析后的字符串。这里有一篇深入一点的文章,有想去的朋友可以去阅读。 深入浅出Node

Kubeadm搭建Kubernetes v1.17.0 集群

有些话、适合烂在心里 提交于 2020-01-28 03:22:24
Kubeadm搭建k8s集群 kubernets架构图 一.kubeadm部署kubernetes v1.17.0 集群 1.环境准备 2.角色 3.初始化(注意:全部的主机) 3.1 关闭防火墙 3.2 关闭selinux 3.2 关闭swap分区 3.3 设置主机名 3.4 配置hosts 3.5 内核调整 4. 安装kubernets和docker 4.1 添加docker的yum源 4.2 添加kubernets的yum源 4.3 安装docker kubelet kubeadm kubelectl 4.3 开启docker 4.4 开启kubelet 5. Master节点(192.168.3.71)启动集群 6. Node节点(192.168.3.72)加入集群 7. 集群检查 7.1 检查集群节点 7.2 检查pod状态 kubernets架构图 一.kubeadm部署kubernetes v1.17.0 集群 1.环境准备 系统版本:Centos7.4 硬件需求:CPU至少2核,内存至少2G 2.角色 ip 角色 安装软件 192.168.3.71 k8s-master kube-apiserver kube-schduler kube-controller-manager docker flannel kubelet 192.168.3.72 k8s-node1

nodejs和Vue和Idea

佐手、 提交于 2020-01-28 03:09:06
文章目录 Vue环境搭建 Idea安装 Idea中配置Vue环境 Node.js介绍 npm介绍 Vue.js介绍[^3] Idea介绍 Vue环境搭建 概述 :vue环境搭建:需要npm(cnpm),而npm内嵌于Node.js,所以需要下载Node.js。 下载Node.js : Node.js官方下载 安装Node.js :双击 - 选择目录 - 一路next(安装程序会自动把node、npm环境变量配置好)。 测试Node.js,npm :打开cmd,输入 node -v 回车,输入 npm -v 回车(node内嵌npm),出现对应版本号说明安装成功,一般是不会有问题的。 设 置缓存文件夹 和 全局模块存放路径 : 在nodejs路径下新建两个文件夹——node_cache , node_global,然后配置: npm config set cache "D:\vueProject\nodejs\node_cache" npm config set prefix "D:\vueProject\nodejs\node_global" ( 引号中路径需要针对自己实际的安装路径 ) 设置成功后,之后用命令npm install XXX -g安装以后模块就在D:\vueProject\nodejs\node_global里,g就是global tips :此时你可以在 C: