如果用框架(express,koa,egg)一行代码就实现了
比如 express
app.use('/static', express.static(__dirname + '/public'));
原生node实现:
原理
使用 http 、fs模块
拦截静态资源目录,然后同步读取文件内容并返回读取结果
const http = require('http');const fs = require('fs');let server = http.createServer((req, res) => {if(req.url.indexOf('/static/') !== - 1) {console.log('获取静态文件')readFile('.' + req.url).then((data) => {res.write(data, "binary");res.end();})} else {console.log('其他接口')res.write("other");res.end();}})function readFile (filePath) {return new Promise((resolve, reject) => {fs.readFile(filePath, "binary", (err, data) => {if(err) {reject(err);return}resolve(data)})})}server.listen(18600, () => {console.log('服务开启!')})
