先用记事本写一个html文件,改名为html,如下:
<h1>My website</h1>
<img src="/images/1.jpg">
<img src="/images/2.jpg">
<img src="/images/3.jpg">
<img src="/images/4.jpg">
然后是服务器代码:
var http = require('http'),fs = require('fs');
var server = http.createServer(function(req,res){
if('GET'==req.method && '/images' == req.url.substr(0,7) && '.jpg'== req.url.substr(-4))
{
console.log("=====1");
console.log('dirname = '+ __dirname);
fs.stat(__dirname + req.url,function(err,stat){
if(err || !stat.isFile()){
res.writeHead(404);
res.end('Not found');
console.log("404,not found");
return;
}
else{
console.log('ok,');
serve(__dirname + req.url,'application/jpg');
}
});
}
else if('GET'== req.method && '/' == req.url){
console.log('dirname = '+ __dirname);
console.log("=====2");
serve(__dirname + '/index.html','text/html');
}
else{
console.log("=====3");
console.log('method = '+ req.method);
console.log('dirname = '+ __dirname);
res.writeHead(404);
res.end('Not found');
}
function serve(path,type){
res.writeHead(200,{'Content-Type':type});
fs.createReadStream(path).pipe(res);
}
});
server.listen(3000);
程序中的console.log是一些调试语句,可以忽略。访问时点击127.0.0.1:3000,网页效果如下
参考书目《了不起的Nodejs》