所以当输入url:http://mysite.com/时,将加载server.js文件(索引文件)。我想在输入网址http://mysite.com/account时加载account.js。
怎么做?
答案 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)
最好使用请求路由器 - 请参阅connect
和express
NPM模块。手动路径比较无法扩展 - 当您添加越来越多的网址时,它会将您的代码变成噩梦。
对于独立路由器,请参阅clutch
NPM模块,但connect
内的路由器更为成熟,可以独立使用。 express
是connect
的扩展,因此它使用connect
中的路由器。