一、node简介
1.Node.js
是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
V8引擎负责解析和执行javascript代码;内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用。
Node.js 的官网地址: https://nodejs.org/zh-cn/
2.终端
专门为开发人员设计的用于实现人机交互的一种方式
• 打开文件方式:文件空白处,按shift键,并点击鼠标右键,出现打开PowerShell窗口即可
• 使用 ↑ 键,可以快速定位到上一次执行的命令
• 使用 tab 键,能够快速补全路径
• 使用 esc 键,能够快速清空当前已输入的命令
• 输入 cls 命令,可以清空终端
二、fs文件模块
Node.js官方提供的、用来操作文件的模块,提供了一系列的方法和属性,满足用户对文件的操作需求
①. fs.readFile() 方法,用来读取指定文件中的内容,异步方法
const fs = require('fs')//导入
fs.readFile('./1.txt', 'utf8', function(err, data) {
console.log(err);
console.log(data);
})
①若读取成功,err为null
②若读取失败,err值为错误对象,dataStr值为undefined
②fs.writeFile() 方法,用来向指定的文件中写入内容(异步)
const fs = require('fs');
fs.writeFile('./03-test.txt', '写入文件', (err) => {
console.log(err);
});
①文件写入成功,err值为null
②文件写入失败,err值为一个错误对象
• 文件不存在,会创建文件
• 文件存在,会被覆盖
• 路径动态拼接问题:__dirname+'路径'
③fs.access():判断文件是否存在、可读、可写
三、path路径模块
Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
①. path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
__dirname:表示当前文件的绝对路径,不包括文件名
const path = require('path');
const pathStr = path.join('/a', '/b/c', '../../', '/d', '/e');
console.log(pathStr); //结果为 \a\b\d\e
路径拼接:
const path = require('path');
const fs = require('fs');
fs.readFile(path.join(__dirname, './3.txt'), 'utf8',
function(err, dataStr) {
if (err) {
return console.log(err.message);
}
console.log(dataStr);
})
②. path.basename() 方法,用来从路径字符串中,将文件名解析出来(可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名)
const path = require('path');
const fpath = '/a/b/c/index.html';
const nameWithoutExt = path.basename(fpath, '.html');
console.log(nameWithoutExt); //返回结果index
③. path.extname( ) 方法,可以获取路径中的扩展名部分,
const path = require('path');
const fpath = '/a/b/c/index.html';
const fext = path.extname(fpath);
console.log(fext); //返回结果.html
四、HTTP模块
Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务。
-
IP地址:互联网上每台计算机的唯一地址,格式:用“点分十进制”表示成(a,b,c,d)的形式,a,b,c,d都是0—255之间的十进制整数
注意:
①互联网中每台Web服务器,都有自己的IP地址,可以在 Windows 的终端中运行 ping www.baidu.com 命令,即可查看到百度服务器的 IP 地址。
②在开发期间,自己的电脑既是一台服务器,也是一个客户端,为了方便测试,可以在自己的浏览器中输入 127.0.0.1 这个 IP 地址,就能把自己的电脑当做一台服务器进行访问了。 -
域名:字符型地址方案。IP地址和域名是一一对应的关系,这份对应关系存放在域名服务器(DNS)中,即域名服务器就是提供IP地址和域名之间的转换服务的服务器
本机IP:127.0.0.1
本机域名:localhost -
端口号:在一台电脑中,可以运行成百上千个 web 服务。每个 web 服务都对应一个唯一的端口号。客户端发送过来的网络请求,通过端口号,可以被准确地交给对应的 web 服务进行处理。端口号:0-65535
注意:
①每个端口号不能同时被多个Web服务占用
②实际应用中,URL中的80端口可以被省略 -
创建WEB服务器的步骤:
①导入http模块
②创建web服务器实例 http.createServer()
③为服务器实例绑定request事件,监听客户端的请求
④启动服务器
//加载http模块
const http = require('http');
//创建server对象,创建web服务器实例
const server = http.createServer();
//注册request事件,监听客户端请求,客户端发来请求时,才会触发
server.on('request', function(req, res) {
//响应头的目的:告诉客户端,响应的结果是什么格式,是什么编码
res.setHeader('Content-Type', 'text/plain;charset=utf-8');
//做出响应,参数就是响应体
res.end('helloworld')
});
//指定端口,启动服务
server.listen(4000, () => {
console.log('服务器启动了');
});
//localhost:4000 打开网页
五、querystring模块
查询字符串:id=1&name=zs&age=20
①. querystring.parse():将查询字符串转换为JS对象
②. querystring.stringify():将JS对象转换为查询字符串
const queryString = require('querystring');
console.log(queryString.parse('id=1&name=ww'));
//{ id: '1', name: 'ww' }
console.log(queryString.stringify({
id: 1,
name: 'bb'
}));
//id=1&name=bb
区分查询字符串id=1&name=zs与JSON字符串{"id":1,"name":"zs"}