MST

星途 面试题库

面试题:Node.js 文件系统与HTTP集成之基础实现

请描述如何在Node.js中利用文件系统模块读取一个HTML文件,并通过HTTP服务器将其内容返回给客户端。请给出关键代码片段及解释。
27.8万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
  1. 引入必要模块
    const http = require('http');
    const fs = require('fs');
    
    • http模块用于创建HTTP服务器。
    • fs模块用于文件系统操作,这里用于读取HTML文件。
  2. 创建HTTP服务器
    const server = http.createServer((req, res) => {
        fs.readFile('index.html', 'utf8', (err, data) => {
            if (err) {
                res.statusCode = 500;
                res.end('Error reading file');
            } else {
                res.statusCode = 200;
                res.setHeader('Content-Type', 'text/html');
                res.end(data);
            }
        });
    });
    
    • http.createServer创建一个HTTP服务器实例,回调函数接收req(请求对象)和res(响应对象)。
    • fs.readFile异步读取index.html文件,'utf8'指定编码格式。回调函数中,如果读取文件出错,设置响应状态码为500并返回错误信息;如果读取成功,设置响应状态码为200,设置Content - Typetext/html,然后将读取到的文件内容作为响应体返回。
  3. 监听端口
    const port = 3000;
    server.listen(port, () => {
        console.log(`Server running on port ${port}`);
    });
    
    • server.listen使服务器监听指定端口(这里是3000),并在服务器启动成功时打印日志。