node.Js - 如何运行不同的页面?

时间:2011-04-22 07:23:46

标签: node.js

所以当输入url:http://mysite.com/时,将加载server.js文件(索引文件)。我想在输入网址http://mysite.com/account时加载account.js。

怎么做?

3 个答案:

答案 0 :(得分:1)

在server.js中,最重要的是包括account.js>

var account = require("./account");

在nodejs的createServer函数中,检查URI是否为/ account>

//Create Server
http.createServer(function (request, response) {
    // Parse the entire URI to get just the pathname
    var uri = url.parse(request.url).pathname, query;
        if (uri == "/account") //If it's mysite.com/account
        {
            request.setEncoding("utf8");
            request.content = '';
                        //call account.whatever() to route to your account     functionality 
                        //send the response from it

        }
            else if (uri == "/") //It's mysite.com
            {   
                      //call whatever you have in the current server.js
            }
}).listen(8080);

答案 1 :(得分:0)

Nodejs是一个守护进程。每次发出请求时都不会加载脚本。 你可以使用类似的东西:

var severs = require('server.js'),
    accounts = require('accounts.js');

require('http').createServer(function (req, res) {
    var path = require('url').parse(req.url).pathname;
    res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});

    if (path == '/account') {
        res.end(accounts.run());
    } else {
        res.end(severs.run());
    }
}).listen(80);

答案 2 :(得分:0)

最好使用请求路由器 - 请参阅connectexpress NPM模块。手动路径比较无法扩展 - 当您添加越来越多的网址时,它会将您的代码变成噩梦。

对于独立路由器,请参阅clutch NPM模块,但connect内的路由器更为成熟,可以独立使用。 expressconnect的扩展,因此它使用connect中的路由器。