轻量级Web框架Node.js和bottle(3)

五.开发进阶(加载静态html/js/css文件)

下面我们在上面例子的基础上实现:能够加载.html页面、.js文件和.css文件。这里只需要对server.js进行修改即可,server.js的内容如下:

var http = require("http");
    var url = require("url");
    var fs = require('fs');
    var path = require('path');
    var root = '/home/zhaolianxiang1/test_nodejs'; //定义文件的根目录

function start(route, handle) {
        function onRequest(request, response) {
            var pathname = url.parse(request.url).pathname;
            console.log("Request for " + pathname + " received.");

//获取文件的后缀名
            var ext = path.extname(pathname);
            switch (ext) {
                case '.html':
                case '.css':
                case '.js':
                    var realpath = root + pathname;
                    //判断请求的文件是否存在
                    path.exists(realpath, function (exists) {
                        if (exists) {
                            //存在的话,读取文件
                            fs.readFile('.' + request.url, 'utf-8', function (err, data) {
                                if (err) throw err;
                                response.writeHead(200, {
                                    "Content-Type" : {
                                        ".html": "text/html",
                                        ".css" : "text/css",
                                        ".js"  : "application/Javascript",
                                    }[ext]
                                });
                                response.write(data);
                                response.end();
                            });
                        } else {//请求的文件不存在
                            response.writeHead(404, {"Content-Type" : "text/html"});
                            response.end("<h1>404 Not Found</h1>");
                        }
                    });
                    break;
                default://其他请求进行路由
                    route(handle, pathname, response);
            }
        }

http.createServer(onRequest).listen(65535);
        console.log('Server has started.');
    }

exports.start = start;

然后,我们在当前目录下再建一个文件index.html。

好,接下来我们来看下运行结果,在浏览器输入::65535/index.html,运行结果如下:

轻量级Web框架Node.js和bottle

在浏览器输入::65535/start,运行结果如下:

参考链接:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/495aab4c65932626fe0f66e03cd1c2ec.html