node入门
nodejs是一门基于JavaScript的背景编程言语,由于其剖析引擎为V8引擎,机能比较壮大,再加上与前端言语关联更加亲昵的天赋上风,使其在浩瀚背景编程言语中脱颖而出。
设置环境变量
编程言语都须要一个运转环境,递次员写出来的代码不可以什么都不做电脑就可以剖析和运转,假如你是前端工程师,那末你应当相识HTML、CSS、JavaScript这些言语都必须运转在浏览器中,缘由就是浏览器供应了这些代码运转的环境,即浏览器内置了这些代码的剖析引擎,当前端代码运转在浏览器中,浏览器会调用差别的剖析引擎对响应的代码举行剖析和衬着,末了构成我们看到的网页。
那末关于背景代码亦然,由于没有浏览器的平台支撑,背景代码要运转,必须有一个运转环境,node就是nodejs代码运转的环境,怎样让你的电脑具有这么个环境呢?很简朴,去node官网下载node应用递次,然后装置就好了(注重装置的时刻要记着node的装置目次)。
运转环境有了,然则还面对一个题目,就是代码怎样才能在该环境中运转呢?参照前端代码,你只需双击翻开后缀名为html的文件,该文件的代码就会自动在浏览器中运转了。然则背景代码可没这么简朴,你须要借助敕令提示符来让你的node代码跑起来,须要实行的敕令为node <file name>
。
到这里你可以就会想,为何实行这么一条敕令,就能让代码实行在node环境中呢?这就须要相识环境变量了。敕令提示符中非自带的敕令到须要手动设置一个环境变量,实行该敕令的时刻体系会自动去事前配好的环境目次中寻找到响应的应用递次,然后实行该递次。
计算机=> 属性 => 高等体系设置 => 环境变量 => path新增(上文提到的装置node的目次)
nodejs是单线程背景言语
nodejs是基于JavaScript的背景言语,JavaScript自身就是单线程言语,那末nodejs天经地义的也就成了单线程背景言语,那末线程究竟是个什么东西呢?
要诠释线程,那末必须先相识另一个观点:历程。历程(Process)是计算机中的递次关于某数据集合上的一次运转运动,是体系举行资本分配和调理的基本单位,是操纵体系构造的基本。递次是指令、数据及其组织形式的形貌,历程是递次的实体。(该形貌来自百度百科)浅显的说,翻开使命治理器,你会看到许多历程,这些历程都或多或少占电脑的CPU和内存的,每一个历程都是一段递次的实例,这些历程组成了计算机一切功用的完成。
那末线程呢,线程,偶然被称为轻量级历程(Lightweight Process,LWP),是递次实行流的最小单位。线程是历程中的一个实体,是被体系自力调理和分配的基本单位,线程本身不具有体系资本,只具有一点儿在运转中必不可少的资本,但它可与同属一个历程的别的线程同享历程所具有的悉数资本。一个线程可以创建和取消另一个线程,统一历程中的多个线程之间可以并发实行。(一样来自百度百科…)浅显的说,线程就是一个历程代码实行的一条线,在一个线程中,代码只能按肯定递次前后实行,不能同时实行,多线程觉得就像可以同时干许多事,切换上下文的速率比较快。
异步编程
由于node是单线程的,所以假如一段代码比较耗时,那末就会涌现代码壅塞的状况,特别是背景中关于文件读写的操纵,所以在背景开辟中,能用异步(非壅塞)就不要用同步。由于你不知道一段异步代码什么时刻实行终了,所以在异步编程中,平常都邑运用回调函数来控制代码的实行递次,而异步编程也是node开辟中的一个难点。
npm
背景开辟另有一个非常重要的观点就是模块化开辟,一个递次的功用须要分红许多模块,模块之间互不影响,否则在大型应用递次中开辟基础没法举行。在背景开辟中,我们无可避免地须要运用第三方模块来疾速完成一些功用,那末怎样才能将他人写好的第三方模块添加到我们本身的项目当中呢?npm就是用来完成这个功用的。npm是包治理东西,用于治理第三方模块,是node自带的东西,无需零丁装置。
npm install <package name> //当地装置模块
npm install <package name> -g //全局装置模块
npm uninstall <package name> //卸载当地模块
npm uninstall <package name> -g //卸载全局模块
npm --help //检察npm相干敕令
运用npm全局装置的包不会被设置到环境变量中,由于npm已存在环境变量中,相当于在npm下有一个快捷方式衔接实在的文件
nrm切换下载地点
nrm是一个切换npm下载源的东西,运用前须要装置,可以切换到国内比较快的下载源
nrm ls 列出一切源
nrm test 测试一切源的下载速率
nrm use <source name> 切换差别的源
package.json 可以纪录装置过哪些包
运用npm当地装置(在当前项目中运用),默许装置时会在当前目次查找node_module文件夹,假如找不到,则向上级目次查找,一向找到根目次,假如找到了,则装置到该文件夹,假如没找到,则会在当前目次新建一个node_module文件夹,将包装到该文件夹下;假如初始化一个package.json文件,就不会致使向上级目次查找
npm init -y //初始化(天生)package.json文件
npm install jquery --save //项目依靠
npm install babel-core --save-dev //开辟依靠
项目依靠是指项目的代码想要一般的运转就须要该模块的支撑,明显不管什么时候,项目依靠的包都应在存在于项目中;而开辟依靠则指的是项目上线的时刻该模块须要运用,上线以后这些包就不须要了,比方babel等代码编译的包。
当在差别的电脑上举行雷同的项目开辟的时刻,假如有package.json文件纪录了依靠的包,就只需实行npm install
来装置一切项目须要运用到的第三方模块
注重装置的时刻加了什么后缀,卸载的时刻也要加一样的后缀
yarn
yarn和npm的功用一样,然则yarn是第三方东西,须要装置,那末为何须要yarn呢?简而言之,yarn具有更快的包装置速率与更平安的包治理机制,假如想细致相识这两者的区分,可以浏览这篇文章:http://web.jobbole.com/88459/
初始化package.json
yarn init -y
装置包
yarn //跑环境,相当于npm install
yarn add jquery //默许就是项目依靠
yarn add babel-core --dev //开辟依靠
卸载包
yarn remove <package name>
总结
以上只是node开辟须要控制的一些基本入门学问,相识这些后最少不会对node以及背景开辟一窍不通,这些学问能为你的node开辟开个好头。