JavaScript 高级使用 NODEJS global对象 模块 定时器 HTTP模块

目录

ES6

块级作用域

NODEJS

全局对象

global对象 

process 对象

Buffer 对象

分配内存空间

模块

NODEJS

timer——定时器

开启定时器

清楚定时器

周期性定时器

开启

清除

立即执行定时器

文件系统

同步 API和异步 API

写入文件

追加写入

读取文件

删除文件

检测文件(目录)

文件流

HTTP 模块

createServer()创建web服务器

设置服务器跳转


 

ES6

块级作用域

  • let声明的变量进入暂时性死区,赋值前不允许访问
  • let声明的变量不允许重复声明

NODEJS

全局对象

global对象 

  • global 最根本的作用是作为全局变量的宿主。
  • 检测一个变量(函数)是否为全局,全局变量或者全局函数会存储global对象下
  • JS下的全局对象为window

process 对象

process 对象用来查看当前运行的Node.js进程

process.arch        查看当前CPU架构

process.platform        查看当前操作系统

process.pid        查看当前进程编号

process.kill()结束指定编号的进程 

Buffer 对象

Buffer,缓冲存储区,内存中一块区域,用于临时存储数据 

分配内存空间

// 单位字节,每个汉字占3个字节
var buf = Buffer.alloc(9,'abc小莉莉');
console.log(buf.toString());

模块

一个文件就是一个模块,每个文件就是一个独立的功能

  • module        当前模块对象
  • module.exports,当前模块暴露的对象,默认空对象,暴露内容都添加到这个空对象下
  • require(),引入其他模块,得到暴露对象

NODEJS

timer——定时器

开启定时器

// 开启
// 一次性定时器
var timer = setTimeout(() => {
  console.log("点击发送快递");
}, 3000);

清楚定时器

// 清楚定时器
clearTimeout(timer)

周期性定时器

开启

var timer = setInterval(() => {
  console.log("fdsfnfdks");
}, 3000);

清除

clearInterval(timer)

立即执行定时器

// 立即执行定时器
console.log(2);
setImmediate(()=>{
    console.log(1);
})
console.log(3);
// 立即执行定时器(优先级高)
process.nextTick(()=>{
    console.log(4);
})

所有的定时器执行过程,都是将回调函数放入到主程序后的事件队列执行

文件系统

  • statSync(文件的路径)/stat(文件的路径,回调函数)
  • isFile()是否为文件 
  • isDirectory()是否为目录

同步 API和异步 API

  1. 同步,在主程序中执行,会阻止主程序中后续代码的执行;同步AP是I通过返回值获取结果
  2. 异步,在一个独立的线程下运行,不会阻止主程序后续代码的执行,异步API是通过回调函数获取结果

Node.js下,提供的API带有回调函数的都是异步API 

写入文件

writeFileSync(path,data)/ writeFile(path,data,callback)

  1. 如果文件不存在,先创建文件,再写入值
  2. 如果文件已经存在,先清空文件内容,再写入值

追加写入

appendFileSync(path,data)/ appendFile(path,data,callback)

  1. 如果文件不存在,先创建文件,再写入值
  2. 如果文件已经存在,在文件的末尾追加写入的值

读取文件

readFileSync(path)/readFile(path,callback)

// 引入文件系统模块
// 同步API,会阻止后续代码的执行
const fs = require("fs");
// 读取文件 同步
var data = fs.readFileSync("1.txt");
fs.readFile("2.txt", (err,data) => {
  if (err) return console.error(err);
  console.log(data.toString());
});

删除文件

unlinkSync(path)/unlink(path,callback)

检测文件(目录)

existsSync(path)

文件流

createReadStream(path)创建读取的流,以流的方式读取文件

createReadStream(path)创建写入的流,创建一个新的文件

pipe()管道,将读取的流添加到写入的流

on(‘事件名称’,callback)添加事件,监听事件,

HTTP 协议

超文本传输协议, 是客户端和web服务器之间的通信协议

  1. 通用的头信息
    1. 请求的网址(Request URL):要请求的服务端资源
    2. 请求的方法(Request Method):对资源的操作方式,get 获取资源,post 传递资源……
    3. 响应状态码(Status Code):
      1. 1**接收了部分的响应
      2. 2**成功的响应
      3. 3**重定向
      4. 4**客户端错误
      5. 5**服务器错误
  2. 相应的头信息(response)
    1. Location:要跳转的网址
    2. Content-Type:响应的内容类型,如果要解决中文乱码,text/html;charset=utf-8
  3. 请求的头信息(request)

HTTP 模块

web服务器:提供资源的服务器 

createServer()创建web服务器

listen(number,callback)设置端口

on(‘request’,(req,res)=>{

res 响应对象

res.statusCode=状态码        设置响应的状态码

res.setHeader()设置响应的头信息

res.write()设置响应到浏览器内容

res.end()结束并发送

})

设置服务器跳转

// 引入http模块
const fs = require("fs");
const http = require("http");
// 创建web服务器
const app = http.createServer();
// 设置端口,用于访问web服务器
app.listen(3000, () => {
  console.log("服务器启动成功");
});
// 域名
// http:localhost:3000
// IP地址
// http:127.0.0.1:3000
// 添加事件,监听客户端请求,做出响应
app.on("request", (req, res) => {
  //   console.log("视频请求");
  // req 请求对象
  // res 响应对象
  //   设置响应头信息内容类型
  //   res.setHeader("Content-Type", "text/html;charset=utf-8");
  //   //设置响应到浏览器的内容
  //   res.write("web前端");
  //   //   结束
  //   res.end();
  // 设置响应状态码
  res.statusCode = 302;
  //   设置响应的头信息,跳转网址
  res.setHeader("Location", "https://www.tmooc.cn/");
  //   结束并发送
  res.end();
});

你可能感兴趣的:(NODEJS,JavaScript,高级开发,开发语言,node.js)