本篇文章的代码在: 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.jsvar 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.htmlif(/\/$/.test(str)){path += 'index.html'}else if(arr.length == 1){// 如果没有后缀名且不以/结尾,则加/index.htmlpath += '/index.html';}var content = '';if (fs.existsSync(path)) {// 如果文件存在,则读取content = fs.readFileSync(path);}else{// 文件不存在则读取404.htmlcontent = 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