静态资源的访问

const http = require('http');
const url = require('url');
const path = require('path');
const fs = require('fs');
const mime = require('mime');

const app = http.createServer();

console.log(global.__dirname);
// console.log(__filename);

app.on('request', (req, res) => {
    // 获取用户的请求路径
    let pathname = url.parse(req.url).pathname;

    pathname = pathname == '/' ? '/default.html' : pathname;

    // 将用户的请求路径转换为实际的服务器硬盘路径
    let realPath = path.join(__dirname, 'public' + pathname);console.log(realPath);
//public内存放着静态资源 比如网页 css文件之类
    let type = mime.getType(realPath)

    // 读取文件
    fs.readFile(realPath, (error, result) => {
        // 如果文件读取失败
        if (error != null) {
            res.writeHead(404, {
                'content-type': 'text/html;charset=utf8'
            })
            res.end('文件读取失败');
            return;
        }

        res.writeHead(200, {
            'content-type': type
        })

        res.end(result);
    });
});

app.listen(3000);
console.log('服务器启动成功')

 

上一篇:替换PHP的realpath()


下一篇:C realpath函数不适用于源文件中定义的字符串