一个节点进程用于2个或更多不同的网页

时间:2014-01-30 09:48:52

标签: node.js

我开始使用nodejs。到目前为止,我可以使用app.js节点应用程序打开网页index.html。

来自http://blog.kevinchisholm.com/javascript/node-js/making-a-simple-http-server-with-node-js-part-ii/的示例:

//step 1) require the modules we need
var
http = require('http'),//helps with http methods
path = require('path'),//helps with file paths
fs = require('fs');//helps with file system tasks

//a helper function to handle HTTP requests
function requestHandler(req, res) {
    var
    content = '',
    fileName = path.basename(req.url),//the file that was requested
    localFolder = __dirname + '/public/';//where our public files are located

    //NOTE: __dirname returns the root folder that
    //this javascript file is in.

    if(fileName === 'index.html'){//if index.html was requested...
        content = localFolder + fileName;//setup the file name to be returned

        //reads the file referenced by 'content'
        //and then calls the anonymous function we pass in
        fs.readFile(content,function(err,contents){
            //if the fileRead was successful...
            if(!err){
                //send the contents of index.html
                //and then close the request
                res.end(contents);
            } else {
                //otherwise, let us inspect the eror
                //in the console
                console.dir(err);
            };
        });
    } else {
        //if the file was not found, set a 404 header...
        res.writeHead(404, {'Content-Type': 'text/html'});
        //send a custom 'file not found' message
        //and then close the request
        res.end('<h1>Sorry, the page you are looking for cannot be found.</h1>');
    };
};

//step 2) create the server
http.createServer(requestHandler)

//step 3) listen for an HTTP request on port 3000
.listen(3000);

但我不知道是否可以打开使用相同app.js的不同网页。它必须是可能的。但是如何修改上面的代码?

问题:

如何修改上面的代码使用app.js能够打开index.html和其他页面web index2.html? index.html的内容与index2.html不同,但两者都使用相同的app.js

1 个答案:

答案 0 :(得分:0)

您需要一个路由系统来将不同的请求路由到不同的处理程序。有一些节点模块可以为您提供此功能。其中一些是:ConnectExpress.jsRestify.js