本篇文章的代码在: 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
时间: 2024-11-05 23:20:20