Node JS 静态资源处理程序

本文介绍如何使用Node.js创建一个简单的静态文件服务器,该服务器能够处理数万条连接,为分布式网站提供高效的服务,减少所需服务器数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 前言

一个拥有大型分布式网站的公司(比如 Facebook 或 Flickr)可能会决定将所有机器只用于服务映像。Node将是这个问题的一个不错的解决方案,因为该公司能使用它编写一个简单的文件检索器,然后处理数万条连接。Node将查找映像文件,返回文件或一个404错误,然后什么也不用做。这种设置将允许这类分布式网站减少它们服务映像、.js和 .css文件等静态文件所需的服务器数量。


  • 实现

var sys = require('sys'),
    http = require('http'),
    url = require('url'),
    path = require('path'),
    fs = require('fs');

http.createServer(function(request, response) {
  var uri = url.parse(request.url).pathname;
  var filename = path.join(__dirname, uri);
  
  path.exists(filename, function(exists) {
     if(!exists) {
        response.writeHead(404, { "Content-Type": "text/plain" });
        response.write("404 Not Found\n");
        response.end();
        return;
     }

     fs.readFile(filename, "binary", function(err, file) {
        if(err) {
           response.writeHead(500, { "Content-Type": "text/plain" });
           response.write(err + "\n");
           response.end();
           return;
        }
  
        var contentType='none';
        var ext = path.extname(filename);
        switch(ext)
        {
          case ".js":
            contentType = 'text/javascript';
            break;
          case ".css":
            contentType = 'text/css';
            break;
        }
      
        response.writeHead(200, { 'Content-Type': contentType });
        response.write(file, "binary");
        response.end();
     });
  });
}).listen(8000);

sys.puts('server running at http://localhost:8000/');

  • 启动

   node statis.js

   对应的css,js文件根据http请求的地址,分别放到statics.js文件的相关目录中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值