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.htmlbrew install node //使用HomeBrew安装nodejsnpm 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 将被解析到绝对路径的字符串。

例子:

node.js初步探究相关推荐

  1. Node.js 初步学习总结

    Node.js是一个基于Goolgle所开发的Chrome浏览器引擎的JavaScript运行环境,简单的说,它就是运行在服务端的JavaScript,使用了很多先进的技术,其中包括事件驱动,非阻塞式 ...

  2. node.js初步认识

    nodejs实际上就是在,nodejs是单线程的.不会被IO阻塞,网页里面随便输入路径都是主路径,需要做判断,跟老牌tomcat等不能比,不过node强在年轻,有他的优势.虽然就一幅图,不过也是自己学 ...

  3. 安装node.js 附带node.js以及npm初步认识 设置淘宝/npm镜像 命令

    1,安装: 下载地址:https://nodejs.org/en/download/ 0积分:https://download.csdn.net/download/weixin_42859280/12 ...

  4. Node.js模块化机制原理探究

    前言 Node应用是由模块组成的,Node遵循了CommonJS的模块规范,来隔离每个模块的作用域,使每个模块在它自身的命名空间中执行. CommonJS规范的主要内容: 模块必须通过 module. ...

  5. node.js+室内装修风格选择系统 毕业设计-附源码211552

    node.js室内装修风格选择系统 摘  要 随着互联网技术的深入发展和成熟,"物联网时代"到来的呼声日益高涨,国家"十二五"规划中也明确将物联网作为战略性新兴 ...

  6. 排查 Node.js 服务内存泄漏,没想到竟是它?

    背景 团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查.服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间 ...

  7. 第一个实例-----我与node.js的第一步接触

    因为最近有东西需要用到node.js,所以我就在linux虚拟机上安装了node.js,对于javascript,也是第一次接触. 刚入门,就是一个实用的案例,毕竟这些东西都是实践出真知.这个案例就是 ...

  8. Node.js实现简易爬虫

    为什么选择利用node来写爬虫呢?就是因为cheerio这个库,全兼容jQuery语法,熟悉的话用起来真真是爽 依赖选择 cheerio: Node.js 版的jQuery http:封装了一个HTP ...

  9. node.js 搭建blog

    搭建开发环境并模拟交互数据 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 三.功能模块分析与设计 四.搭建开发环境 LouBlog 使用 nodeJS 搭 ...

最新文章

  1. 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
  2. python字符串_Python字符串格式化%s%d%f详解
  3. Android 去除最上面应用名称及图标
  4. Google作图工具- SketchUp
  5. win10语音识别的设置和开启
  6. python_三目运算
  7. ThinkPhp 更改 BIT 类型的问题
  8. ubuntu 20.04命令行模式_Ubuntu18.04LTS升级到20.04LTS
  9. 【回放视频+PPT下载整理】Elasticsearch Meetup系列第二期
  10. gradle配置阿里Maven仓库
  11. Flutter笔记--Sliver用法
  12. Linux下载神器XDM,代替IDM
  13. openGL 纹理使用
  14. 云服务器数据丢失可以恢复吗?
  15. 【0429】散列函数和消息鉴别
  16. manjaro安装-制作安装U盘
  17. Linux Let's Encrypt生成免费证书
  18. 米酷修正影视7.2完整版源码
  19. 服务器显示四个0,魔兽9.0来了,首日多个服务器爆满,玩家排了4小时也没登上...
  20. Augustus安装小记

热门文章

  1. java guava 使用_Java8-Guava实战示例
  2. QPropertyAnimation实现游戏地图场景变换
  3. IDEA 的 LeetCode 刷题插件 leetcode editor
  4. python知识:@classmethod和@staticmethod的异同
  5. 类别选择器在HTML中如何表示,CSS类别选择器
  6. python集合的并集、交集_Python 集合set()添加删除、交集、并集、集合操作详解
  7. runtimeexception异常_应用系统的异常管理-持续更新
  8. 【新星计划】MATLAB绘制图形
  9. 2021-01-20 Python编程特殊小技巧汇集
  10. 用java写一个日历_2017.12.2 用java做一个日历