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编写的程序也都是开源的,供其他人重用。

 

posted @ 2018-09-20 20:46  staticxff  阅读(153)  评论(0)    收藏  举报