返回

快速搭建 Node.js 静态资源服务器,轻松托管静态文件

前端

在开发 web 应用程序时,静态文件(如 HTML、CSS、JavaScript 和图像)的托管是至关重要的。Node.js 提供了强大的 HTTP 模块,使我们能够轻松创建静态资源服务器,以便有效地分发这些文件。

使用 HTTP 模块创建服务器

首先,我们需要使用 require('http') 来加载 Node.js 的 HTTP 模块。然后,我们可以使用 http.createServer() 方法创建一个服务器实例。这个方法接收一个回调函数作为参数,该函数将在收到 HTTP 请求时执行。

const http = require('http');

const server = http.createServer((req, res) => {
  // ... 处理请求并响应
});

配置服务器

接下来,我们需要配置服务器的监听端口。默认情况下,服务器在 80 端口监听,但我们可以通过设置服务器对象的 listen 属性来更改它。

server.listen(3000);

启动服务器

最后,我们可以使用 server.listen() 方法启动服务器。该方法将开始侦听传入的连接,并在收到请求时调用我们定义的回调函数。

server.listen(3000, () => {
  console.log('服务器正在 3000 端口运行...');
});

实际实现

以下是一个使用 HTTP 模块创建静态资源服务器的完整示例代码:

const http = require('http');
const fs = require('fs');

http.createServer((req, res) => {
  // 获取请求的文件路径
  const filePath = '.' + req.url;

  // 检查文件是否存在
  fs.exists(filePath, (exists) => {
    if (exists) {
      // 读文件并发送响应
      fs.readFile(filePath, (err, data) => {
        if (err) {
          res.statusCode = 500;
          res.end('服务器错误');
        } else {
          res.end(data);
        }
      });
    } else {
      // 文件不存在,发送 404 错误
      res.statusCode = 404;
      res.end('找不到文件');
    }
  });
}).listen(3000);

这个服务器将监听 3000 端口,并在收到请求时检查文件是否存在。如果文件存在,它将被读取并作为响应发送。如果文件不存在,将发送 404 错误。

总结

使用 Node.js 的 HTTP 模块创建静态资源服务器很简单。它提供了对 HTTP 请求的强大控制,并使我们能够轻松地托管和分发静态文件。无论你是开发简单的网站还是复杂的 web 应用程序,Node.js 的静态资源服务器都是一个强大的工具。