1、创建一个名为 www 的文件夹,随便放一些资源




2、编写测试代码,实现动态地址访问

// 1.0 加载核心模块
var http = require('http');
var fs = require('fs');

// 2.0 创建一个Web服务器
var server = http.createServer();

/**
* 3.0 注册request请求事件
* 当客户端请求过来,就会自动触发服务器的request请求事件,
* 然后执行第二个参数:处理函数
*
* request请求事件处理函数需要接收2个参数:request、response
*/
server.on('request', function(request, response) {
var wwwDir = "D:/www";
var filePath = "/index.html";
var url = request.url;
console.log('请求路径是:'+url);

if (url!="/") {
filePath = url;
}

fs.readFile(wwwDir + filePath, function(error, data) {
if (error) {
return response.end("404 Not Found.");
}
response.end(data);
});
});

// 4.0 绑定端口号,启动服务器
server.listen(3000, function() {
console.log('服务器启动成功,可以通过http://127.0.0.1:3000/来进行访问');
});



3、动态地址测试

例如:http://127.0.0.1:3000/image/2.jpg




4、处理静态资源和404页面

1、将静态资源统一放在一个文件夹下,例如:static文件夹

2、请求判断

// 处理静态资源
if (url.startsWith('/static/')) {
fs.readFile('.' + url, function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
respone.end(data);
});
}


3、静态资源+404实例

var http = require('http');
var fs = require('fs');

http
.createServer(function(request, respone) {
var url = request.url;

// 处理静态资源
if (url.startsWith('/static/')) {
fs.readFile('.' + url, function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
respone.end(data);
});
}
// 处理请求路径
else if (url=='/') {
fs.readFile('./view/index.html', function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
respone.end(data);
});
}
// 404
else {
fs.readFile('./view/404.html', function(error, data) {
if (error) {
return respone.end('404 Not Found');
}
respone.end(data);
});
}
})
.listen(3000, function() {
console.log("running...");
})



回到顶部