所以当输入url:http://mysite.com/时会有加载的server.js文件(索引文件)。当我输入url http://mysite.com/account时,我想加载account.js。node.Js - 如何运行不同的页面?
如何做到这一点?
所以当输入url:http://mysite.com/时会有加载的server.js文件(索引文件)。当我输入url http://mysite.com/account时,我想加载account.js。node.Js - 如何运行不同的页面?
如何做到这一点?
在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);
请更新答案,我在您回答之前几秒钟更改了问题。 – 2011-04-22 07:52:54
我已更新我的回答 – neebz 2011-04-22 08:12:29
是的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);
.run()是一个真正的函数还是仅用于说明目的? – 2011-04-22 09:11:16
插图。阅读关于在Nodejs中创建模块的信息。 http://nodejs.org/docs/v0.4.6/api/modules.html – Emmerman 2011-04-22 09:19:19
这是更好地使用请求路由器 - 看connect
和express
NPM模块。手动路径比较无法扩展 - 当您添加越来越多的URL时,它会将您的代码变成噩梦。
对于独立路由器,请参见clutch
NPM模块,但connect
内部的路由器比较成熟,可以独立使用。 express
是connect
的扩展,所以它使用connect
的路由器。
Nodejs是一个守护进程。每次提出请求时都不会加载脚本。 – Emmerman 2011-04-22 08:11:26