节点js Web服务器始终链接到同一页面

drkbr07n  于 2021-09-23  发布在  Java
关注(0)|答案(3)|浏览(206)

我试图建立一个网页与多个html网页。
使用下面的代码,我可以链接到登录页面,但是localstores页面也可以链接到登录。

const express = require('express')
const app = express()
const port = 3000
var path = require("path");
var request = require('request');
const { get } = require('./routes/brand');

//Static files
app.use(express.static('public'))
app.use('/css', express.static(__dirname +'public/css'))
app.use('/img', express.static(__dirname +'public/img'))
app.use('/js', express.static(__dirname +'public/js'))

app.get('/',(req, res) => {
   res.sendFile(path.join(__dirname +'/views/brand.html'));
})

   app.route('/*').get(function(req, res)  {
        res.sendFile(path.join(__dirname +'/views/login.html'));
});

app.route('/*').get(function(req, res)  {
   res.sendFile(path.join(__dirname +'/views/localstores.html'));
});

// listen on port 3000

app.listen(port,() => console.info(`Listening on port ${port}`))

在html文件中,我将单独的按钮链接到单独的页面,如下所示:

<a href ="login.html">
    SIGN IN</a></p>
</div>

<a href ='localstores.html'>LocalStores</a>

我希望有人能帮我。我对html和nodejs非常陌生。

li9yvcax

li9yvcax1#

app.route('/*').get 将对所有get请求执行,例如导航。因为您首先有login.html,所以它会返回。
您可以删除这些行并将html文件中的href更新为:

<a href ='/views/localstores.html'>LocalStores</a>

alternativley您可以将其更改为:

<a href ='/localstores'>LocalStores</a>

并加上:

app.route('/localstores').get(function(req, res)  {
        res.sendFile(path.join(__dirname +'/views/localstores.html'));
});
2vuwiymt

2vuwiymt2#

app.route('/*').get(function(req, res)  {
        res.sendFile(path.join(__dirname +'/views/login.html'));
});

app.route('/*').get(function(req, res)  {
   res.sendFile(path.join(__dirname +'/views/localstores.html'));
});

这些似乎影响着同一条路线。似乎express只使用了声明的第一个。
我的建议是试试这个,这样每个页面都有自己的路线:

app.route('/login').get(function(req, res)  {
        res.sendFile(path.join(__dirname +'/views/login.html'));
});

app.route('/localstores').get(function(req, res)  {
   res.sendFile(path.join(__dirname +'/views/localstores.html'));
});
368yc8dk

368yc8dk3#

当您这样做时:

app.route('/*').get(function(req, res)  {
     res.sendFile(path.join(__dirname +'/views/login.html'));
                                                       });

它基本上是对每个在根目录之后访问任何路由的客户机/用户进行节点化 / 运行此函数,返回 login.html 佩奇那是什么 /* 方法
相反,请尝试指定两个页面的不同路由,如下所示:

app.get('/login',function(req, res)  {
    res.sendFile(path.join(__dirname +'/views/login.html'));
  });

  app.get('/localstores',function(req, res)  {
  res.sendFile(path.join(__dirname +'/views/localstores.html'));
  });

在html中,您不需要输入文件名,只需要使用您定义的路由,express将处理向客户端发送适当的文件

<a href ="login">
  SIGN IN</a></p>
  </div>

  <a href ="localstores">LocalStores</a>

相关问题