使用nodejs加载静态资源

当我们想通过node服务加载一些静态资源怎么做呢?

其实很简单, nodejs提供了诸多的类库给我们使用

loadStaticFile.js

let http = require('http')
//url库
let url = require('url')
//通用工具库
let util = require('util')
//有关文件流处理库
let fs = require('fs')

let server = http.createServer((req, res) => {
//获取url文件路径
const pathName = url.parse(req.url).pathname

//使用util类中的substring方法,清除url前一个无用字符
fs.readFile(pathName.substring(1), (err, data) => {
// 当本地没有这个文件时, 设置404, 反之
if (err) {
res.writeHead(404, {
'Content-Type': 'text/html'
})
} else {
res.writeHead(200, {
'Content-Type': 'text/html'
})
// 写入数据
res.write(data.toString())
}
res.end('ok')
})
})
// 监听服务的端口
server.listen(3000, '127.0.0.1', () => {
console.log('服务启动成功,请打开localhost:3000访问')
})

我们在本地新建一个 index.html 。 启动服务 , 访问

http://127.0.0.1:3000/index.html

你会发现,该url指向的是本地的index.html文件, 并且响应头信息是我们之前设置的200, 当我们通过url访问一个本地不存在的静态文件时,返回的就是404了

(完)

分享到