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

Posted 李靠谱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node利用express搭建自由路由服务器相关的知识,希望对你有一定的参考价值。

本篇文章的代码在: 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搭建自由路由服务器的主要内容,如果未能解决你的问题,请参考以下文章

node.js零基础详细教程:express 路由

利用node.js写一个后台服务器---express框架的搭建及使用

详解express搭建http服务,通过路由和中间件获取静态文件和动态数据的实现原理

利用express搭建一个restful api 服务器

node.js使用Koa搭建基础项目

Node.js 蚕食计划—— Koa 基础项目搭建