var url = require('url');
const express = require('express')
const path = require('path')
var fs = require('fs');
const app = express()
//多个app.use执行顺序:从上往下执行,找到request中url中文件之后,后续use不再执行,如果没有找到就一直往下执行知道找到为止。app.use被定义为中间件,app.get、app.post等其实都是app.use。
//express.static是托管静态资源,设定整个静态资源存放的位置(根目录),index.html中请求的css、js的路径将以express.static为根目录,在该目录下找。
// 例如app.use(express.static(path.resolve(__dirname,"./test"))) 那么index.html中的<link reef='/index.css' />请求的静态文件的真实的路径就是__dirname/test/index.css。__dirname指的是server.js文件所在的目录。根目录的确定必须以server.js文件所在的目录为基准。
app.use(express.static(path.resolve(__dirname,"./")))//url为index.html时先在第一个app.use中的express.static(path.resolve(__dirname,"./")目录下找,如果没有找到,就往下执行第二个app.use
app.use(function(req, res, next) {// 不加匹配路径的参数时会匹配到所有的前端路由
// res.sendFile(path.resolve(__dirname, 'build/index.html'));
console.log("ssss",url.parse(req.url).pathname)
fs.readFile(path.resolve(__dirname, './index.html'), function(err, data){
if(err){
console.log(err);
res.send('后台错误');
} else {
res.writeHead(200, {
'Content-type': 'text/html',
'Connection':'keep-alive'
});
res.end(data);
}
})
})
// app.use('/a', function(req, res, next) {
// res.send('aaa');
// })
// app.use('/route', function(req, res, next) {// "/route"会匹配到route/ee/eee、route/xx等含有route的路由
// // res.sendFile(path.resolve(__dirname, 'build/index.html'));
// fs.readFile(path.resolve(__dirname, 'build/index.html'), function(err, data){
// if(err){
// console.log(err);
// res.send('后台错误');
// } else {
// res.writeHead(200, {
// 'Content-type': 'text/html',
// 'Connection':'keep-alive'
// });
// res.end(data);
// }
// })
// })
app.listen(8080)
node静态服务器
最新推荐文章于 2023-03-03 11:49:34 发布