后端:Node.js

Node.js可以认为是一个遵从js语法形式的开发体系。换言之,实现了js语法同时还自带私货
使用node可以在脱离浏览器的环境下使用js,其自身就是个解释器,还外加包管理器
在这个意义上而言,跟python性质有点像

安装环境

可以直接去官网下载安装包,然后安装。使用默认配置即可
完成后打开控制台检测下是否成功

其中npm是node package manager,管理包的工具
如果要安装一个包使用npm install XXX即可
该指令会将文件下载到运行该条指令的文件目录下,称为本地安装
如果后面增加-g选项,就是安装到系统特定目录,称为全局安装
ndoe官方文档建议使用本地安装,这样便于每个工程分别管理

基础使用

直接上代码

node里使用require来获取模块,会将模块作为一个对象返回(ES6语法使用了import方式,跟这个有区别)
之后是创建了一个http server,并注册了on request事件,传入函数对象实现业务逻辑。这里就是简单的返回字符串而已
然后开始监听8080端口

之后在目标目录打开终端,输入node hello.js运行该脚本
看到输出

之后打开浏览器输入http://localhost:8080即可看到hello node.js显示
这就是一个简单的web服务器了

node核心概念

node有私货,这部分说说node独有的内容

Buffer用来操作uint8,实质上是byte array。JS起初是没有操作byte的需求的,所以语言里没有内置这方面的内容。node填补了这个空白
使用Buffer.from(x)把一个变量转为Buffer;使用Buffer.alloc(#)分配一段长度为#的byte array。从Buffer里可以读取、写入字节内容

fs是node提供的filesystem接口,也是填补了JS空白。
可以使用readFile和write读写文件,也可以使用open按照某种mode打开文件,比如app。另外还可以操作dir和查看文件属性。还有path类来简化操作
但是注意绝大多数操作都是异步的,所以要传入回调函数做进一步处理。如果想要使用同步版本则有专门的接口

http是node的核心模块。node一大用处就是实现web服务器后端,所以有这个模块
上述例子展示了基本用法,当然http模块还是比较底层的,有更现成的框架来快速搭建服务器,会在后续文章中介绍

event模块是node的异步事件机制,通常而言不会直接用到。但是当需要自己写库时,就会涉及到
核心的对象是EventEmitter,提供了注册onXXX和监听机制。这里只是指出有这么个内容,不详述。