5

node.js 探究之路

1、mac下安装node.js

(1)、升级系统到最新
(2)、升级xcode

xcode-select -p //检查是否安装xcode,如果出现路径,说明已安装

xcode-select -install //安装xcode

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  //安装homebrew,官网:https://brew.sh/index_zh-cn.html

brew install node //使用HomeBrew安装nodejs

npm intall -g n //安装n模块到全局,从而控制node版本

2、node启一个web服务器

新建node_test目录,内部创建server.js文件,写入一下代码,
图片描述
终端执行:

$ cd node_test/imooc/beginning
$ node server.js

注意: 每次修改 response.end('Hello Worldn') 返回的内容时,都要在终端执行" ctrl+c "停止当前服务,再重新启动 "node server.js"。

3、node模块系统
在node.js中,文件和模块是一一对应的。
(1)、模块流程:
图片描述
(2)、module.exports和export区别:

module.exports = add;  //特别的对象类型;(推荐使用,支持现有),module.exports最终返回给调用者;

exports.add = add;   //传统的模块实例;(exports是辅助方法),exports挂载属性和方法,然后把属性赋给module.exports;

4、node API 之 url
(1)、url.parse()
图片描述
url地址组成:

protocol:指定底层使用协议,http或ftp等
slashes:是否有协议的双斜线
host:http的IP地址或域名
port:端口
hostname:主机名
hash:哈希值,锚点
search:查询字符串参数
query:发送给http的数据,参数串
pathname:访问资源路径名
path:路径
href:超链接

URI :Uniform Resource Identifier,统一资源标识符;
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称。
其中,URL,URN是URI的子集。

(2)、url.parse(urlString,bool,bool): 将定位符解析成对象,识别无协议的url
第二个参数决定query部分以字符串返回还是以对象形式返回,默认为字符串返回即第二个参数默认为false;
图片描述

以上图中设置为 true,看到的query是对象形式。

第三个参数表示在没有完整协议串的时候(即无http:,https:)的时候‘//’之后的字符如何解释,若为false即将‘//’之后的当做路径解释,若为true则会将‘//’与‘/’之间的字符串解释为主机
图片描述

对比上图中加入第三个参数,发现pathname,paht,host,port,hostname都会不同。

(3)、url.resolve(): 将一个基本URL和指定超链接目标URL合并
图片描述
(4)、url.format(): 将对象解析成定位符(也就是URL)
图片描述

5、QueryString使用
(1)、querystring.stringify(obj,para1,para2)//将对象转化成url中query部分的形式(序列化)
参数:1.要转化的对象 2.参数之间的链接符(默认&)3.键与值之间的符号(默认=)

图片描述

(2)、querystring.parse(string,para1,para2)//将query字符串转化成对象(反序列化)
参数: 1.query字符串 2.链接符(默认&),如果不是‘&’,需要在参数中说明使用的符号,如下面的‘,’。 3.键与值之间的符号(默认=),如果使用的不是‘=’,需要在参数中说明使用的符号,如线面的‘:’。 4.参数的个数(默认最多1000个,0就没有限制)

图片描述

(3)、querystring.escape(string)//文字转译
(4)、uquerystring.unescape(string)//反转译

图片描述

5、node API 之 path

注意:该方法属于path模块,使用前需要引入path模块(var path= require(“path”) )

path.resolve方法用于将相对路径转为绝对路径:

 path.resolve([from ...], to) //将参数 to 位置的字符解析到一个绝对路径里。其中:from 源路径,to 将被解析到绝对路径的字符串。

例子:

图片描述


Miss_Ye
1.5k 声望157 粉丝

知识的价值不在于占有,而在于使用!