Node.js:如何使默认页面成为某种状态。不是index.html

时间:2015-11-20 02:53:38

标签: node.js

最初,我的node.js服务器默认转到index.html。 现在我想默认为login.html,以便人们可以先登录。

我的代码位于.../server/server.js,而客户页面位于.../client/login.htmlindex.html等。

现在我将server.js修改为:

app.get('/', function(req, res)
{
    res.sendfile(path.resolve('../client/login.html'));
});

重启server.js后,默认情况下网页仍然指向index.html。我错过了什么?

2 个答案:

答案 0 :(得分:3)

如果您在Nodejs上运行ExpressJS,则可以使用静态方法静态提供文件。第一个参数是目录,第二个参数允许您指定默认文件。

app.use(express.static('../client/', {index: 'login.html'}))

http://expressjs.com/guide/using-middleware.html#middleware.built-in

对于您的具体示例,您可以修改sendFile以包含具有第二个参数的根:

res.status(200).sendFile('login.html', { root: path.join(__dirname, '../client/') });

答案 1 :(得分:1)

如果您还有一个正在为您获取索引页的路由器,并且您想要呈现车把页或执行其他操作,则可以将任何内容放在index选项中,如果在static中找不到该选项,它将忽略它资产文件夹:

app.use(
    express.static(
        path.resolve(__dirname, "../Client/assets/"),
        {index: "userouterinstead"}
    )
)

app.use("/", route_configs)

app.get("*",  (req, res, next) => {
    res.sendFile(
        path.resolve( __dirname, "../Client/assets/index.html" )
    )
})