现在位置首页 / 编程也疯狂 /正文

[ f2e-server系列教程]node.js 基本文件服务器

作者: 释梵 | 2015年6月15日| 热度:℃ | 评论: |参与:

Node.js 因为使用了javascript作为编程语言, 可以说是当下最火爆的新兴web开发平台。

我从本章节开始逐步讲解 f2e-server 的构建过程.


  • 从官方首页一个hello world出发, 先构建一个httpServer

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
  • 使用http.createServer开启一个本地对1337端口的监听,接受到请求后,返回一个文本类型的相应,内容为 "Hello World\n"。 这里有几个WEB基础知识点:

    1. 200: HTTP 状态消息 服务端返回的状态消息用来告诉浏览器这个请求是否成功。

    2. {'Content-Type': 'text/plain'}MIME-type 服务端返回的相应内容类型,浏览器根据该类型解析响应的内容(网页、图片、音频、视频、xml等)。

  • 完成一个文件服务器,除了基本的服务器监听以外,最重要的是文件系统的数据读取,这里需要查看来自fs模块的 API:

  • 另外: 可以根据请求路径的后缀,识别请求结果数据的MIME-type,这里就需要用到mime模块了,这个可以直接使用$npm install mime 安装,详细的api可以参见Github: https://github.com/broofa/node-mime

PS,完整代码如下:

"use strict";
var mime = require("mime"),    //MIME类型
    http = require("http"),
    fs = require("fs");
http.createServer(function(req,resp){
    var root = "",
        pathname = decodeURI(req.url).substring(1);
    fs.stat(root + pathname, function(error, stats){
        if(!error && stats && stats.isFile && stats.isFile() ){
            resp.writeHead(200, {
                "Content-Type": mime.lookup(pathname) || 'text/html'
            });
            fs.createReadStream(pathname).pipe(resp);
        }else{
            resp.writeHead(404, {
                "Content-Type": 'text/html'
            });
            resp.end("404");
        }
    });
}).listen(8888);


github of f2e-server: https://github.com/shy2850/node-server

 

点击阅读本文所属分类的更多文章: 编程也疯狂 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询