Nodejs学习笔记(1)
一、Nodejs
简介
Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的、可扩展的网络应用。Node.js采用事件驱动和非阻塞I/O模型,使其变得轻微和高效,非常适合构建运行在分布式设备的数据密集型实时应用。
运行于浏览器的Javascript,浏览器就是Javascript代码的解析器,而Node.js则是服务器端JS的代码解析器,存于服务器端的JS代码由Node.js来解析和应用。
JS解析器只是JS代码运行的一种环境,浏览器是JS运行的一种环境,浏览器为JS提供了操作DOM对象和window对象等接口。Node.js也是JS的一种运行环境,node.js为JS提供操作文件、创建http服务、创建TCP、UDP服务等接口,所以Node.js可以完成其他后台语言能完成的工作。
安装及环境配置
下载+安装+环境配置+测试各环节,详见博客https://www.cnblogs.com/zhouyu2017/p/6485265.html
执行文件
和绝大多数脚本语言一样,Node.js可以通过你的node命令来执行Node脚本。
用你喜欢的编辑器,创建一个名为my-web-server.js的文件,输入如下内容:
var http = require('http'); var serv = http.createServer(function(req,res) { res.writeHead(200,{'Content-Type':'text/html'}); res.end('<marquee>Smashing Node!</marquee>'); });
serv.listen(3000);
cmd中使用如下命令来执行此文件,即运行服务器:
$ node my-web-server.js
退出服务器:按两次Ctrl+C即可,不需要每次都退出cmd后重新进入
上述代码展示了如何使用Node书写一个完整的HTTP服务器,来托管一个简单的HTML文档。这是一个Node.js的经典例子,因为它证明了Node.js的强大,仅仅通过几行JS代码就创建一个像Apache或者IIS的Web服务器。
二、NPM
简介
Node包管理器(NPM)可以让你在项目中轻松地对模块进行管理,它会下载指定的包、解决包的依赖、运行测试脚本以及安装命令行脚本。
其实nodejs中的module和java中的包概念很类似,一些解决方案的集合,官方会提供核心的几个,第三方的很多,为方便理解,上一段中以“包”来命名和定义。
安装
为了展示如何通过NPM来安装模块,我们创建一个my-project目录,安装colors模块,然后创建一个index.js文件:
#第一种方法:cd到my-project目录下 $ npm install colors #第二种方法:无需多次cd,直接安装全局模块 $ npm install colors -g
注:第二种方法的详细步骤参见上文nodejs环境配置中提到的网址,要在高级设置中添加全局变量,改变用户变量路径
要验证模块是否安装成功,可以在该目录下查看是否有node_module/colors目录。
然后,用你最喜欢的编辑器编辑index.js文件:
require('colors'); console.log('smashing node'.rainbow);
cmd中执行该文件。
三、自定义模块
要自定义模块,你需要创建一个package.json文件。至于自定义模块的好处,待更新。
在原先创建的目录(my-project)中,删除node_modules目录并创建一个package.json文件,删除目录的目的在于,下文中提到的依赖模块的模块名是colors,在cmd中npm install时会生成colors模块,所以预先删除。
然后,将如下内容添加到该文件中:
{ "name":"my-colors-project", "version":"0.0.1", "dependencies":{ "colors":"0.5.0" } }
注:此文件内容必须遵循JSON格式。仅仅遵循JS格式是不够的。举例来说,你必须要确保所有的字符串,包括属性名,都是使用双引号而不是单引号。
四、小结
本文重点:
1. 搭建nodejs+npm环境
2. 除运行node和npm命令外,应当学会如何执行简单脚本以及如何声明模块依赖
3. nodejs中一个重要的关键词require,它用来载入模块和系统API,这部分内容之后会着重介绍
4. 建立:npm仓库是nodejs模块生态系统的入口这一概念。nodejs是开源项目,以大部分nodejs编写的程序也都是开源的,供其他人重用。