在nodejs上托管多个页面

时间:2011-09-03 02:47:07

标签: node.js

所以我的应用程序位于http://localhost:8080/

我如何拥有http://localhost:8080/subpage?因为它看起来像任何页面命中:8080拉取server.js

谢谢!

**编辑 - 这是对我有用的(感谢 stewe的 回答)**

var app = require('http').createServer(createServer);
var fs = require('fs'); 
var url = require('url');

function createServer(req, res) {
    var path = url.parse(req.url).pathname;
    var fsCallback = function(error, data) {
        if(error) throw error;

        res.writeHead(200);
        res.write(data);
        res.end();
    }

    switch(path) {
        case '/subpage':
            doc = fs.readFile(__dirname + '/subpage.html', fsCallback);
        break;
        default:
            doc = fs.readFile(__dirname + '/index.html', fsCallback);
        break;
    }
}

app.listen(8080);

2 个答案:

答案 0 :(得分:10)

这是一个开始:

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

var server=http.createServer(function(req,res){
    var pathname=url.parse(req.url).pathname;
    switch(pathname){
        case '/subpage':
            res.end('subpage');
        break;
        default:
            res.end('default');
        break;
    }

}).listen(8080);

答案 1 :(得分:5)

我遇到了和你一样的问题,我认为我们都在寻找的是node.js的路由引擎。基本上,好吧我得到了nodejs的hello-world示例,但是如何构建响应不同请求的东西呢?

对于通过Google访问此页面的未来用户,您必须查看Express.js这本优秀指南并介绍明确Understanding Express.js。这两个将解决问题