// 统一处理页面的静态资源
// npm i mime -S
const http = require('http')
const fs = require('fs')
const path = require('path')
const mime = require('mime')
const server = http.createServer((req, res) => {
const {url} = req;
if (url === '/') {
fs.readFile(path.resolve(__dirname, './index.html'), (err, data) => {
if (err) {
throw err
}
res.statusCode = 200
res.setHeader('Content-Type', 'text/html;charset=utf-8')
res.end(data)
})
} else if (url.startsWith('/assets/')) {
fs.readFile(path.resolve(__dirname, `.${url}`), (err, data) => {
if (err) {
res.statusCode = 404
res.setHeader('Content-Type', 'text/plain;charset=utf-8')
res.end('404 Not Found')
return
}
const ext = path.extname(url)
const contentType = mime.getType(ext)
res.statusCode = 200
res.setHeader('Content-Type', contentType)
res.end(data)
})
} else {
res.statusCode = 404
res.setHeader('Content-Type', 'text/plain;charset=utf-8')
res.end('404 Not Found')
}
})
server.listen(3000, '127.0.0.1', () => {
console.log(`server is run http://127.0.0.1:3000`);
})
// 原生处理方式
const http = require('http')
const fs = require('fs')
const path = require('path')
const server = http.createServer((req, res) => {
const {url} = req;
if (url === '/') {
fs.readFile(path.resolve(__dirname, './index.html'), (err, data) => {
if (err) {
throw err
}
res.statusCode = 200
res.setHeader('Content-Type', 'text/html;charset=utf-8')
res.end(data)
})
} else if (url === '/assets/css/index.css') {
fs.readFile(path.resolve(__dirname, './assets/css/index.css'), (err, data) => {
if (err) {
throw err
}
res.statusCode = 200
res.setHeader('Content-Type', 'text/css')
res.end(data)
})
} else if (url === '/assets/js/index.js') {
fs.readFile(path.resolve(__dirname, './assets/js/index.js'), (err, data) => {
if (err) {
throw err
}
res.statusCode = 200
res.setHeader('Content-Type', 'text/javascript')
res.end(data)
})
} else {
res.statusCode = 404
res.end('404 Not Found')
}
})
server.listen(3000, '127.0.0.1', () => {
console.log(`server is run http://127.0.0.1:3000`);
})