代码之家  ›  专栏  ›  技术社区  ›  Rupesh

使用nodejs服务器命中角度路由时出错

  •  0
  • Rupesh  · 技术社区  · 7 年前

    我的主页在 locahost:3000 ,并且在我的主页中有一个链接到登录页面 /login .

    当我点击那个链接时,它就会到达登录页面。但当我刷新页面时,它显示错误 Cannot GET /login . 再次,当我点击主页上的链接时,它会到达登录页面,但当我试图输入url时 localhost:3000/login 同样的错误 无法获取/登录 .

    我的 app.js 是-

        app.use(express.static(__dirname + '/dist/newApp'));
    
        app.get('/', (req,res)=>{
          res.sendFile(path.join(__dirname, ''));
        });
    

    我的角度路线是-

    export const myRoutes: Routes = [
       {
        path: ' ',
        component: HomepageComponent
       },
      {
        path: 'login',
        component: LoginComponent
      }]
    

    我在用 routerLink="/login" 而不是 href 为了链接。

    我不知道为什么会这样。

    我的服务器运行进程是-- npm build then npm start

    如果我运行我的角度服务器 ng serve ,然后输入url 本地主机:3000/登录 直接在浏览器中运行。

    但当我运行nodejs服务器时,它又会导致问题。

    我认为问题是在运行nodejs服务器时,angular服务器停止运行。

    有人能解释一下原因和如何运行这两个服务器吗。

    1 回复  |  直到 7 年前
        1
  •  0
  •   user184994    7 年前

    你需要加一个期末考试 * 捕获它无法识别的任何路径的路径(例如 /login ),并返回 index.html 文件。

    app.get('*', (req, res) => {
      res.sendFile(path.join(__dirname, '/dist/newApp/index.html'));
    });
    

    把它放在任何其他路由声明之后是非常重要的。

    推荐文章