Node(五)

Node.js的全局对象

Node.js的全局对象是具有全局性的,它们可在所有的模块中应用。我们并不需要在应用中引用这些对象,而可以直接使用它们。

1.__filename

__filename 表示正在执行的代码的文件名。这时此代码文件的解析绝对路径。(当前被执行的文件的全名–>绝对路径+文件名)

2.__dirname

__dirname表示当前正在执行的脚本所在目录的名称

console.log("文件名是:"+__filename);    //输出结果为:文件名是:C:\Users\Lenovo\Desktop\code\1.2\main.js

console.log("路径名:"+__dirname);    //输出结果为:路径名:C:\Users\Lenovo\Desktop\code\1.2

在这里插入图片描述

3.setTimeout(cb,ms)

setTimeout(cb, ms) 全局函数用于至少多少毫秒后运行回调cb。实际延迟取决于外部因素,如OS计时器粒度和系统负载。计时器不能跨越超过24.8天。
该函数返回一个表示可用于清除定时器的对象。

function printHello(){
    console.log("Hello");
}

setTimeout(printHello,2000);

4.clearTimeout(t)

clearTimeout(t):清除定时器,用来停止由setTimeout创建的定时器

function printHello(){
    console.log("Hello");
}

 let st = setTimeout(printHello,2000);

clearTimeout(st);

5.setInterval(cb,ms)

setInterval(cb,ms):定时器,间隔多少秒执行一次定时器

function printHello(){
    console.log("Hello");
}

let st = setInterval(printHello,1000);

6.clearInterval(t)

function printHello(){
    console.log("Hello");
}

let st = setInterval(printHello,1000);

clearInterval(st);

7.process

process:是一个全局对象,包含了Node进程的全部信息(当前正在执行的代码的全部信息)

"进程":就是程序的一次动态进行,进程就是动态运行的程序

(1)process对象

属性:process对象提供一系列属性,用于返回系统信息。

console.log("Pid:",process.pid);    //进程号

console.log("操作系统:",process.platform);

console.log("Node版本号:",process.version);

(2)process.stdout

process.stdout:返回一个标准输出对象,该对象有一个方法write,作用和console.log类似
process.stdout.write("Hello World!");

(3)process.stdin

process.stdin:返回一个标准输入对象
process.stdout.write("请输入数据:");

process.stdin.on("data",(dt)=>{
    process.stdout.write("输入的数据是:"+dt.toString().trim())
    process.exit(0);    //结束进程
})

(4)process.stderr

process.stderr.write("标准错误");

(5)方法

process.chdir():切换工作目录到指定目录,类似于DOS的cd指令

process.cwd():返回运行当前脚本的工作目录的路径

process.exit():退出当前进程

Node服务器开发

1.IP地址

IP地址:是互联网设备的唯一标识。
	IPV4:点分十进制表示(32位)  例:192.168.101.15
	IPV6:采用冒号十六进制表示(128位)    例:4A::5B::...

2.端口

端口:是计算机提供的某个服务的接口,计算机系统的端口有6535个,不同的服务端口号不同
	MySQL的默认端口:3306
	MongoDB:27017
	0~1024端口号:操作系统使用	

3.URL

URL:统一资源定位符,用于定位互联网上某个资源的编址方式

4.本地机作为服务器

IP127.0.0.1
域名:localhost

5.http协议

http协议:超文本传输协议,是一个无状态协议(服务器端在监听时不知道是哪个客户端发送的请求)

在这里插入图片描述

请求消息:是客户端向服务器段发送请求时所携带的数据块

响应消息:是服务器端向客户端发送响应时所携带的数据块

(1)请求方式

请求方式:规定客户端和服务器端联系的类型

A、get
get:在浏览器地址栏输入URL地址或单击网页中的超链接
B、post
post:在form标签的method中指定为post

6.根据客户端的地址访问不同的内容

req.method:包含了客户端的请求方式

req.url:包含的是客服端请求的地址
const http = require("http");

const server = http.createServer();

server.on("request",(req,res)=>{
    let url = req.url;

    if (url == "/index" || url == '/'){
        res.end('Welcome Homepage')
    }else if (url == '/list'){
        res.end('Welcome Listpage')
    }else{
        res.end('Not Found')
    }
})

server.listen(3000);
console.log("服务器已经启动!");

7.获取请求头信息

(1)请求头

请求头:是请求消息的一部分,由客户端浏览器自动发送给服务器

User-Agent:浏览器类型

Accept:客户端可识别的响应内容类型列表。
		  
Accept-Language:客户端可接收的自然语言。
		  
Accept-Encoding:客户端可接收的编码压缩格式。
		  
Accept-Charset:可接收的应答的字符集。
		  
Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机。
		  
connection:连接方式(close 或keepalive)。
		  
Cookie:存储于客户端扩展字段,向同一域名的服务器端发送属于该域的cookie

8.响应信息

(1)状态码

状态码:用来表示请求-响应的过程是成功还是失败
	200:表示请求-响应的过程已经完成
	302:表示请求地址异常变化
	404:表示服务器找不到客户端请求的资源(客户端请求的资源不存在)
	400:表示客服端请求由语法错误
	500:表示服务器端错误,无法处理客服端的请求	

(2)响应类型(content-type属性)

text/plain:返回纯文本格式
text/html:返回HTML格式
text/css:返回CSS格式
application/javascript:返回JavaScript格式
application/json:返回JSON代码格式
image/jpeg:返回JEPG图片格式

9.Get请求参数

放在浏览器地址栏或页面的超链接

A、在客户端进行参数的拼接:
	http://localhost:3000/list?name=%22zhangsan%22&age=12
	地址和请求参数之间用'?'分隔
	参数和参数之间用'&'分隔

B、服务器端接受Get请求请求的参数
	调用url.parse方法对req.url进行解析
	从query中获取参数请求

10.Post请求参数

Post请求参数:放在post请求体中
	(1)在客户端对post请求参数进行封装:放在form表单中
	(2)在服务器端获取post参数
		A、导入querystring模块,将post请求体解析成对象格式
const http = require("http");

const querystring = require("querystring");

const postServer = http.createServer();

postServer.on("request",(req,res)=>{

    let postStr = '';
    req.on('data',(params)=>{
        postStr += params;
        req.on('end',()=>{
            let postParams = querystring.parse(postStr);
            console.log("姓名:",postParams.username)
            console.log("密码:",postParams.pwd)
        })
    })
    res.end("ok");
})

postServer.listen(3000);
console.log("服务器运行在3000端口上");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值