将example.com路由到静态文件,但在Express-JS中将example.com/anything路由到其他东西

时间:2014-08-01 23:03:07

标签: javascript node.js express parse-platform

我是Parse的新手,我正在尝试将我的应用部署到example.com

我希望example.com提供静态目标网页,但example.com/anything(当然,anything不是文字,可以是任何内容)由另一个控制器处理。< / p>

更清楚地说明:

场景1:用户在其网络浏览器中输入www.example.com

输出:我的静态目标网页,例如index.html

场景2:用户在其网络浏览器中输入www.example.com/ausername

输出:呈现ejs页面服务器端的结果。

如何以非常简单的方式实现这一目标?我试过了:

app.get('/:username', function(req, res){
    res.render("user", { username: req.params.username });
});

这适用于example.com/ausername但是当我输入example.com时,请求会再次由上述方法呈现,从而产生错误。

1 个答案:

答案 0 :(得分:1)

您可以将静态index.html放在项目根目录的“公共”文件夹中,并使用express.static()中间件来提供该静态页面。

// Serve the static landing page at the root
// e.g. public/index.html => http://www.example.com/
app.use(express.static(__dirname + '/public'));

// Serve the route
// e.g. http://www.example.com/test123
app.get('/:username', function(req, res){
    res.render("user", { username: req.params.username });
});

这将允许用户访问根目录下的静态页面,并在提供值时访问您的路由。有关详细信息,请参阅Express middleware documentation