2011-04-22 31 views

回答

1

在server.js,顶部包括account.js>

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

在你的NodeJS功能createServer,你检查URI是/帐号>

//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); 
+0

请更新答案,我在您回答之前几秒钟更改了问题。 – 2011-04-22 07:52:54

+0

我已更新我的回答 – neebz 2011-04-22 08:12:29

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); 
+0

.run()是一个真正的函数还是仅用于说明目的? – 2011-04-22 09:11:16

+0

插图。阅读关于在Nodejs中创建模块的信息。 http://nodejs.org/docs/v0.4.6/api/modules.html – Emmerman 2011-04-22 09:19:19

0

这是更好地使用请求路由器 - 看connectexpress NPM模块。手动路径比较无法扩展 - 当您添加越来越多的URL时,它会将您的代码变成噩梦。

对于独立路由器,请参见clutch NPM模块,但connect内部的路由器比较成熟,可以独立使用。 expressconnect的扩展,所以它使用connect的路由器。