首页 > 其他 > 详细

node利用express搭建自由路由服务器

时间:2017-03-26 21:38:26      阅读:234      评论:0      收藏:0      [点我收藏+]

本篇文章的代码在: https://github.com/DescLee/NodeServer-v0.0.1.git

1. 按照网上的方法首先创建一个package.json文件,文件内容如下, package.json各个字段含义,可以看这篇文章

{
 "name": "server",
 "description": "the first express server",
 "version": "0.0.1",
 "private": true,
 "dependencies": {
   "express": "4.x"
 }
}

2. 使用以下代码进行express库的安装

npm install

3. 目录下创建index.js作为node服务器主文件,其中routers文件夹下存放路由文件,可以实现对输入地址的判断

// index.js

var express = require("express");
var app = express();

// app.use(express.static(__dirname + ‘/public‘));  // 有这句的话,当输入网址后,首先从public中查看是否有该资源

var routers = require(‘./routers‘)(app); // 如果public中没有的话,则进行路由功能

app.listen(2333);

 

4. routers文件夹中创建index.js文件来实现路由功能

 

// router/index.js
var fs = require(‘fs‘);
module.exports = function(app) {
    app.use(‘/‘, function(req, res) {
        // 默认请款下,使用text/html格式
        var type = "text/html";
        var str = req.url;
        var arr = str.split(".");
        // 如果发现是图片则使用图片格式(如果是别的格式可以在这里添加)
        switch(arr[arr.length - 1]){
            case ‘jpg‘:
                type = "image/jpeg";
                break;
            case ‘png‘:
                type = "image/png";
                break;
        }
        // 设置状态码以及MIME类型
        res.writeHeader(200, {"Content-Type": type});
        
        // 设置原始请求路径
        var path = __dirname + ‘/../..‘+ req.url;

        // 如果请求地址以 / 结尾,则默认在后面加index.html
        if(/\/$/.test(str)){
            path += ‘index.html‘
        }else if(arr.length == 1){
            // 如果没有后缀名且不以/结尾,则加/index.html
            path += ‘/index.html‘;
        }
        
        var content = ‘‘;
        if (fs.existsSync(path)) {
            // 如果文件存在,则读取
            content = fs.readFileSync(path);
        }else{
            // 文件不存在则读取404.html
            content = fs.readFileSync(__dirname + ‘/../404.html‘)
        }
        res.end(content);
    })
};

// get方法
// use方法
// all方法

5. 返回上一级目录,使用以下代码开启服务器

node index.js &

6. 在与server文件夹同目录下,建立index.html、404.html以及其他html、jpg、png格式的测试文件。

7. 打开浏览器输入以下网址测试成功。

http://localhost:2333

 

node利用express搭建自由路由服务器

原文:http://www.cnblogs.com/likaopu/p/6623664.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!