使用node-js 搭建一个静态资源服务
- 项目目录格式如下

- 在01_index.js中配置相关内容及启动服务,这里就涉及到之前关于文件操作的fs模块了。
__dirname解释
const http = require('http')
const fs = require('fs')
const server = http.createServer((resquest,response) => {
let { pathname } = new URL(request.url,'http://127.0.0.1')
const rootPath = __dirname + '/assets' + pathname
fs.readFile(rootPath,(err,data) => {
if(err){
response.statusCode = 500
response.setHeader('Content-type','text/html;charset=utf-8')
response.end('文件读取失败')
return
}
respnse.end(data)
})
})
server.listen(9000,()=>{
console.log('服务启动成功')
})
- 当node服务启动成功之后,我们可以直接在浏览器中访问静态文件地址,如能直接通过路径访问到相对应的文件,则证明搭建成功。例:直接访问css地址

- 完善一下错误处理的返回,可以看下文档中介绍 ERROR错误
const http = require('http')
const fs = require('fs')
const server = http.createServer((resquest,response) => {
if(request.method !=='GET'){
response.statusCode = 405
response.end('<h1>请求方式错误</h1>')
return
}
let { pathname } = new URL(request.url,'http://127.0.0.1')
const rootPath = __dirname + '/assets' + pathname
fs.readFile(rootPath,(err,data) => {
if(err){
response.setHeader('Content-type','text/html;charset=utf-8')
switch(err.code){
case 'ENOENT':
response.statusCode = 404
response.end('<h1>Not Found</h1>')
case 'EPERM':
response.statusCode = 403
response.end('<h1>Forbidden</h1>')
default:
response.statusCode = 500
response.end('<h1> Intetnal Server Error </h1>')
}
return
}
respnse.end(data)
})
})
server.listen(9000,()=>{
console.log('服务启动成功')
})