写一个简单的服务器;支持html css 和 js文件
目录结构
1 index.js中导入模块
// 1 导入模块
let http = require('http')
let fs = require('fs')
let path = require('path')
let url = require('url')
2 index.js中创建服务
// 2 再次创建服务器
let server = http.createServer((req,res) => {
let urlStr = req.url;
let {pathname} = url.parse(urlStr,true)
// 对pathname进行解析 base 完整的文件名 ext:文件后缀名
let {base,ext} = path.parse(pathname)
if(pathname === '/'){
// 返回首页
fs.readFile('./html/index.html',(err,data) => {
if(err) return console.log(err);
res.end(data)
})
}
if(ext === '.html'){
// 读取html文件夹中的同名文件
fs.readFile(`./html/${base}`,(err,data) => {
if(err){
// 若读取文件失败,则进入404页面
fs.readFile(`./html/404.html`,(err,data) => res.end(data))
}else{
res.end(data)
}
})
}
if(ext === '.js'){
// 读取html文件夹中的同名文件
fs.readFile(`./js/${base}`,(err,data) => {
if(err){
// 若读取文件失败,则进入404页面
fs.readFile(`./js/err.js`,(res,data) => res.end(data))
}else{
res.end(data)
}
})
}
if(ext === '.css'){
// 读取html文件夹中的同名文件
fs.readFile(`./css/${base}`,(err,data) => {
if(err) return res.end()
res.end(data)
})
}
})
3 index.js中指定监听端口
// 3 指定监听端口
server.listen(8080,() => {
console.log('请访问: http://localhost:8080');
})
完成后,命令行中: node 文件名
在浏览器中输入地址,服务器根据地址进行页面转跳