如果用框架(express,koa,egg)一行代码就实现了
    比如 express

    1. app.use('/static', express.static(__dirname + '/public'));

    原生node实现:
    原理
    使用 http 、fs模块
    拦截静态资源目录,然后同步读取文件内容并返回读取结果

    1. const http = require('http');
    2. const fs = require('fs');
    3. let server = http.createServer((req, res) => {
    4. if(req.url.indexOf('/static/') !== - 1) {
    5. console.log('获取静态文件')
    6. readFile('.' + req.url).then((data) => {
    7. res.write(data, "binary");
    8. res.end();
    9. })
    10. } else {
    11. console.log('其他接口')
    12. res.write("other");
    13. res.end();
    14. }
    15. })
    16. function readFile (filePath) {
    17. return new Promise((resolve, reject) => {
    18. fs.readFile(filePath, "binary", (err, data) => {
    19. if(err) {
    20. reject(err);
    21. return
    22. }
    23. resolve(data)
    24. })
    25. })
    26. }
    27. server.listen(18600, () => {
    28. console.log('服务开启!')
    29. })