node之http详解

274 阅读2分钟

这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战

http 模块WEB服务初始化

//引入http模块相当于php的apache (node.js不像php,http模块是node.js自带的)
let http = require('http');
//初始化server服务
var server = http.createServer();

//监听端口
server.listen(3000,()=>{
	console.log('---server服务启动,端口3000---');
})

//在浏览器内在地址栏内访问   127.0.0.1:3000 或者 localhost:3000 的结果是一直转圈圈(一直在响应)

模块接收用户请求和返回数据

//引入http模块相当于php的apache (node.js不像php,http模块是node.js自带的)
let http = require('http');

//初始化server服务
var server = http.createServer();

//监听端口
server.listen(3000,()=>{
	console.log('---server服务启动,端口3000---');
})

//监听用户请求
//req : 客户端请求的相关信息和方法
//res : 客户端相应的一些方法
server.on('request',(req,res)=>{
	//write 表示返回的信息
	//简单的输出信息,可以输出多次
	// res.write('这是服务器端返回的数据');
	// end 表示结束响应
	// res.end();
	
	// 也可以直接使用end输出
	res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>你好啊;</body></html>')
})

根据访问路由返回不同信息(req.url)

//引入http模块相当于php的apache (node.js不像php,http模块是node.js自带的)
let http = require('http');

//初始化server服务
var server = http.createServer();

//监听端口
server.listen(3000,()=>{
	console.log('---server服务启动,端口3000---');
})

//监听用户请求
//req : 客户端请求的相关信息和方法
//res : 客户端相应的一些方法
server.on('request',(req,res)=>{
	// console.log(req.url)
	if(req.url == '/'){
		res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>这是首页;</body></html>');
	}else if(req.url == '/list'){
		res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>这是列表页面;</body></html>')
	}else if(req.url == '/page'){
		res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>这是内容页面;</body></html>')
	}else{
		res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>404页面没找到;</body></html>')
	}
})

加载静态文件(如图片,css,js)

//引入http模块相当于php的apache (node.js不像php,http模块是node.js自带的)
let http = require('http');
let fs = require('fs');

//初始化server服务
var server = http.createServer();

//监听端口
server.listen(3000,()=>{
	console.log('---server服务启动,端口3000---');
})

//监听用户请求
//req : 客户端请求的相关信息和方法
//res : 客户端相应的一些方法
server.on('request',(req,res)=>{
	if(req.url){
		// 读取这个图片 
        //'.' + req.url 实例(./1.jpg)
		fs.readFile('.' + req.url,(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.end(data);
			}
		})
	}else{
		res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>404页面没找到;</body></html>');
	}
})

模板加载

//引入http模块相当于php的apache (node.js不像php,http模块是node.js自带的)
let http = require('http');
let fs = require('fs');

//初始化server服务
var server = http.createServer();

//监听端口
server.listen(3000,()=>{
	console.log('---server服务启动,端口3000---');
})

//监听用户请求
//req : 客户端请求的相关信息和方法
//res : 客户端相应的一些方法
server.on('request',(req,res)=>{
	if(req.url == '/'){
		// 读取首页模版
		fs.readFile('./view/index.html',(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.end(data);
			}
		})
	}else if(req.url == '/list'){
		// 读取列表页模版
		fs.readFile('./view/list.html',(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.end(data);
			}
		})
	}else if(req.url == '/page'){
		// 读取内容页面模版
		fs.readFile('./view/page.html',(err,data)=>{
			if(err){
				console.log(err);
			}else{
				res.end(data);
			}
		})
	}else{
		res.end('<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>404页面没找到;</body></html>');
	}
})