Node.js note1(NodeJS 实现静态服务器)

题外话

为什么HTML5是跨平台的?

很简单,因为HTML5想要运行,依赖于支持HTML5浏览器。只要不同平台上有支持HTML5的浏览器,那么HTML5就可以在不同平台上实现。比如说,移动端、PC端、Linux、Unix等系统都有支持运行HTML5的浏览器,所以说HTML5是跨平台的。


前言

学习nodeJS可以了解前后台交互过程。

nodejs是JavaScript的运行环境,允许js在服务器上运行。这样一来,nodejs就把js变成了服务器端语言。

而在没有nodejs之前,js不能脱离浏览器平台等运行;但nodejs可以让js脱离浏览器单独运行。

服务器端语言和客户端语言的区别在哪里呢?— 安全性。
客户端语言不能读取本地硬盘上的东西(为了信息安全);但服务器语言可以,比如可以读取本地数据库。

JavaScript的定义是什么?
JavaScript是具有高安全性的解释型脚本语言。而这个高安全性指的就是js不能读取本地硬盘。

所以js本身不是服务端语言,但nodejs扩展了js的运行范围,让js能运行在服务器端,让js脱离浏览器运行,让js能读取本地硬盘数据,从而操作数据库。


NodeJS 实现静态服务器

1.1、nodeJS的定义

Node.js是一个基于Chrome V8引擎(编译成原生机器码)的,让JavaScript运行在服务器端的运行环境,它让JavaScript的触角伸到了服务器端。

1.2、nodeJS特性

node是单线程的,擅长高并发处理,适合高IO的操作,擅长I/O密集型处理。
在这里插入图片描述

1.2.1、单线程

NodeJS不会为每个连接客户创造一个新的线程,而是仅用一个线程。也就是说,Node.js是单线程。

多线程:
在这里插入图片描述
单线程:
在这里插入图片描述

1.2.2、非阻塞式IO

NodeJS在访问高IO操作后不会等待其完成,而是立即去执行其他代码,操作完成后会使用回调函数返回。

能高效的利用当前线程,不造成硬件浪费。

1.2.3、事件驱动

NodeJS通过事件来驱动整个程序的进行。

由于是单线程,所以把高IO的操作移动到事件队列中等待完成,完成后通过回调函数的方式返回给线程来进行处理。

把这个循环处理的过程称之为:事件环。

1.3、nodeJS运行环境—REPL交互式解释器

Shell一般会被叫做:Node.js REPL(交互式解释器) 。

我们可以在终端中输入命令,并接收系统的响应。Node Shell是快速运行测试Node的方式之一。可以进行简单的内容测试。

使用:
进入DOS命令行,输入node,执行后就能开启node解释器,帮助我们翻译JavaScript。就是说,这一直接写js代码,然后回车自动执行得出结果。
在这里插入图片描述
我突然发现这个功能跟谷歌的Chrome浏览器的“检查”有点像。
在这里插入图片描述
所以,轻量级的简单的操作,都可以直接在node解释器里面写。
在这里插入图片描述
这种方式,一般做轻量级测试时会用。

1.4、nodeJS—魔术变量

在这里插入图片描述
注意:__filename 双底杠
在这里插入图片描述 在这里插入图片描述

2.1、nodeJS模块

node中以模块来划分功能,一个js是一个模块,多个模块相互引用形成一个模块化式项目

Node应用由模块组成,采用 CommonJS 模块规范。

2.2、nodeJS Comment.js模块书写

js文件因为作用域的问题,变量和函数只能在当前文件中进行使用。如果想在当前模块外引用,必须导出使用。

Comment.js模块导出常用两种方式:exports/module.exports。

exports返回的是模块函数,module.exports返回的是模块本身。目的是让这些内容进行暴露,然后在使用的时候用require来引入。这就跟ES6中的有区别了,ES6用export导出,然后import导入,视情况看是否用解构。这两种规范要弄清。

通常情况下都是用module.exports导出。
在这里插入图片描述在这里插入图片描述

2.3、nodeJS模块—优点

减少代码重复,提高利用率;划分功能,方便管理;方便使用第三方模块。

NodeJS优缺点:https://www.cnblogs.com/ljbkyBlog/p/8366175.html

模块化,复用性高,但是文件多;但模块化编程思想是未来的一种发展趋势,而且就目前看来呈不可逆的态势。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值