摘要:利用http、url、path、fs模块创建静态web服务器
app.js文件
const http = require('http')
const fs = require('fs')
// 引入自定义模块common,用于判断文件类型
const common = require('./module/common')
const path = require('path')
const url = require('url')
// 1、创建http服务
http.createServer(function (req, res) {
//2、通过url模块获取到每一次请求消息里面的url地址pathName
let pathName = url.parse(req.url).pathname
pathName = pathName == '/' ? '/index.html' : pathName
// 3、通过path模块path.extname()方法可以获取url路径下文件后缀名
// 把url路径下的文件后缀名获取到
let extname = path.extname(pathName)
if (pathName !== '/favicon.ico') {
fs.readFile('./static' + pathName, (err, data) => {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/html;charset=utf-8' });
res.end('404页面不存在');
}
// 5、根据文件后缀名判断文件类型
let mine = common.getFileMine(extname)
res.writeHead(200, { 'Content-Type': ''+mine+';charset=utf-8' });
res.end(data);
})
}
}).listen(3000);
console.log('Server running at http://127.0.0.1:3000/');
common.js自定义模块:用于判断请求文件的类型
const fs = require('fs')
// 判断文件类型
exports.getFileMine = function (extname) {
var data = fs.readFileSync('./data/mime.json')
let mimeObj = JSON.parse(data.toString())
return (mimeObj[extname])
}