您的位置:首页 > Web前端 > Node.js

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

2017-03-26 20:27 435 查看
本篇文章的代码在: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: