**node初认**
1
首先我们来说一说什么是node,其实node就是一个基于Chrome V8引擎的JS运行环境.(中文官网:http://nodejs.org/zh-cn)
在node中执行JS时,它属于JS的后端运行环境,并且它无法调用DOM和BOM
在简单的介绍完node后,我们应该如何进行学习呢?
学习的路径:JS基础语法+ Node .js内置API(fs,path,http等)+第三方API(express,mysql等),学完这些基本上你就大致能明白什么是node啦~
下载网址 https://nodejs.org.en/(LTS长期稳定版,Current新特性版本(不一定稳定哦))
WIN+R➡cmd 开打终端 node-v查看你所下载node的版本
第一部分:咱们介绍一下系统模块
fs模块(文件系统模块)
fs.readFile( ) 用来读取指定文件中的内容
fs.readFile(path,[options],callback)
第一个参数是路径 第二个参数是编码格式通常为utf8
第三个参数是回调函数
fs.writeFile( ) 用来指定文件中写入的内容
注意点: 在使用fs模块时进来不要使用 ./ 或 …/ 的相对路径, 所以要使用可以提供完整的路径 __dirname
第二部分:咱们说一下路径模块
path.join( ) 用来将 多个路径片段进行拼接成一个完整的路径字符串
参数 paths 路径片段的序列
返回值:字符串类型
**注意点:**在使用node时,使用path.join()方法进行处理,不要使用+进行字符拼接
path.basename(path,[ext]) 获取路径中文件名
参数 : 第一个参数 path 必选参数 表示路径字符串
第二个参数 ext 可选参数表示文件的拓展名
path.extname( ) 获取路径中文件的拓展名
参数 : 第一个参数 path 必选参数 表示路径字符串
第二个参数 ext 可选参数表示文件的拓展名
用法和上面的path.basename()类似
第三部分:我们来继续学习什么http模块
来学习http模块,我们就要知道什么是客户端,什么是服务器
负责消耗资源的是客户端,而对外负责提供网络资源的就是服务器
第一步 需要导入http模块
const http = require(‘http’)
第二步 创建web服务器实例对象
const server = http.createServer()
第三步 为服务器绑定request(请求)事件,监听客户端发送过来的网络请求
server.on(‘request’,(req,res) = >{
console.log(‘恭喜你绑定成功’)
})
第四步 启动我们的服务器 调用服务器实例方法 .listen()
server.listen(80,() = >{
console.log(‘服务器启动成功,http://127.0.0.1’)
})
req 是请求的对象,包含了与客户端相关的属性和数据,比如:req.url 客户端请求的URL地址 req.method 客户端的 method请求类型
res 是响应对象 ,比如你要发送到客户端的字符串,并且结束这次请求的处理过程 需要使用 res.end(XXX你需要传递的内容)
在进行res.end方法进行传递内容是,会出现中文乱码的情况,这个时候需要我们手动的进行设置请求头,在res.end()之前进行设置
res.setHeader(‘Content-Type’,‘text/html’,‘charset=utf-8’)
第四部分:什么是node的模块开发
模块化,故名思意,就是成系统的,一块一块的,进行开发,就算丢失了其中的一个模块,并不会影响你的其他功能的运行。
15. 模块化的分类:内置模块(fs,http,path等),自定义模块(自己创建的每一个JS文件都是一个模块),第三方模块(第三方的模块,需要下载引入,后面会说明如何下载等)
模块化的好处:复用性高,维护方便,实现按照需要进行加载
引入自己的自定义模块时,可以省略后缀名
模块之间的作用域:自定义的方法或者变量只可以在当前的模块内被访问,这就是模块的作用域
作用域的好处:防止全局变量的污染
node遵循了模块化的规范(CommonJS)
1.module变量代表当前的模块 2.module是一个对象,exports是对外的接口
3.加载某个模块就是加载module.exports
4.require()用于进行加载模
123