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);