nodejs是一门基于JavaScript的后台编程语言,因为其解析引擎为V8引擎,性能比较强大,再加上与前端语言关系更为密切的先天优点,使其在众多后台编程语言中脱颖而出。html
编程语言都须要一个运行环境,程序员写出来的代码不可能什么都不作电脑就能够解析和运行,若是你是前端工程师,那么你应该了解HTML、CSS、JavaScript这些语言都必需运行在浏览器中,缘由就是浏览器提供了这些代码运行的环境,即浏览器内置了这些代码的解析引擎,当前端代码运行在浏览器中,浏览器会调用不一样的解析引擎对相应的代码进行解析和渲染,最后造成咱们看到的网页。前端
那么对于后台代码亦然,因为没有浏览器的平台支持,后台代码要运行,必需有一个运行环境,node就是nodejs代码运行的环境,怎么让你的电脑拥有这么个环境呢?很简单,去node官网下载node应用程序,而后安装就好了(注意安装的时候要记住node的安装目录)。node
运行环境有了,可是还面临一个问题,就是代码怎样才能在该环境中运行呢?参照前端代码,你只要双击打开后缀名为html的文件,该文件的代码就会自动在浏览器中运行了。可是后台代码可没这么简单,你须要借助命令提示符来让你的node代码跑起来,须要执行的命令为node <file name>
。jquery
到这里你可能就会想,为何执行这么一条命令,就能让代码执行在node环境中呢?这就须要了解环境变量了。命令提示符中非自带的命令到须要手动配置一个环境变量,执行该命令的时候系统会自动去事先配好的环境目录中寻找到相应的应用程序,而后执行该程序。程序员
计算机=> 属性 => 高级系统设置 => 环境变量 => path新增(上文提到的安装node的目录)web
nodejs是基于JavaScript的后台语言,JavaScript自己就是单线程语言,那么nodejs理所固然的也就成了单线程后台语言,那么线程究竟是个什么东西呢?npm
要解释线程,那么必需先了解另外一个概念:进程。进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操做系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。(该描述来自百度百科)通俗的说,打开任务管理器,你会看到不少进程,这些进程都或多或少占电脑的CPU和内存的,每一个进程都是一段程序的实例,这些进程组成了计算机全部功能的实现。编程
那么线程呢,线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程本身不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的所有资源。一个线程能够建立和撤消另外一个线程,同一进程中的多个线程之间能够并发执行。(一样来自百度百科...)通俗的说,线程就是一个进程代码执行的一条线,在一个线程中,代码只能按必定顺序前后执行,不能同时执行,多线程感受就像能够同时干不少事,切换上下文的速度比较快。json
因为node是单线程的,因此若是一段代码比较耗时,那么就会出现代码阻塞的状况,特别是后台中对于文件读写的操做,因此在后台开发中,能用异步(非阻塞)就不要用同步。由于你不知道一段异步代码何时执行完毕,因此在异步编程中,通常都会使用回调函数来控制代码的执行顺序,而异步编程也是node开发中的一个难点。浏览器
后台开发还有一个很是重要的概念就是模块化开发,一个程序的功能须要分红不少模块,模块之间互不影响,不然在大型应用程序中开发根本没法进行。在后台开发中,咱们无可避免地须要使用第三方模块来快速实现一些功能,那么怎么才能将别人写好的第三方模块添加到咱们本身的项目当中呢?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是一个切换npm下载源的工具,使用前须要安装,可以切换到国内比较快的下载源
nrm ls 列出全部源 nrm test 测试全部源的下载速度 nrm use <source name> 切换不一样的源
使用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和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开发开个好头。