Node模块之http ,fs,express,path

1.http模块

用来起一个后端服务(程序)

①前提:执行了npm init 创建了包含package.json文件的初始化文件夹、

②导入模块:

let  http = require("http");

node中使用require导入模块,通常把它存在一个同名的变量里,便于使用。

let http = require('http');

// 访问的时候触发这个回调函数
let app = http.createServer(function (request,response){
	// request 请求的信息对象 客户端请求的信息
	// response 响应的方法对象 服务端响应的方法集合
	console.log('有人访问了',request.url);

	response.end(`
		<!DOCTYPE html>
			<html lang="zh-cn">
				<head>
					<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
			        <title></title>
					<style>
						
					</style>
					<script>
						
					</script>
				</head>

				<body>
					hello
				</body>
			</html>
	`);
})

app.listen(4000,() => {
	console.log('启动服务成功')
})

③ let app = http.createServer(function (request,response){})

这一步是创建服务。参数为一个回调函数,当你后面设置的4000端口(可以设置为其他的,这里只是举例)被访问时,这个回调函数就会被调用。

④ request里是请求的信息,response(调用write(……),end())可以设置响应后返回到页面的信息

2.express

安装模块:npm i express -S

eg:

let express = require('express');
let app = express();
console.log(__dirname); // 运行这个文件所在的绝对路径


app.use(express.static('static'));


// 路由 
// 动词 访问的时候,执行对应的处理程序
// 名词 路径和处理程序的配置
app.get('/',(req,res) => {
	res.sendFile(__dirname + '/views/index.html')
})
app.get('/about',(req,res) => {
	res.sendFile(__dirname + '/views/about.html')
})
app.get('/home',(req,res) => {
	res.sendFile(__dirname + '/views/home.html')
})

app.listen(4001,() => {
	console.log('服务启动成功');
})

3.express中间件——next:

let app = express();

app.use("/about",function(req,res,next){
    //党访问about页面的时候,next函数也会被执行
})
1.如果next中间件没有挂载路径,应用的每个请求都会执行中间件
2.挂载 /user/:id的中间件,任何指向/user/:id 的都会执行中间件

4.fs模块(默认为async异步)

后端把文件内容读出来之后,发送给客户端(页面),在服务器端,可以读取文件

let fs = require("fs");
fs.readFile("/index.html",(e,data)=>{
    //在 node中有Errorfirst
    if (e){
        console.log(e)
    }else{
        console.log(data)
    }
})

error是第一个参数,data是第二个参数

默认data是Buffer二进制,需要转成UTF-8,可以调用data.toString()转为十进制(影响的是cmd里看的数据),浏览器会自动解析。

fs.readFile是异步的,会自动执行后面的代码。

如果需求是文件读取完毕之后再执行后面的代码的话,使用:

fs.readFileSync(//里面同上)

response.end(data);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值