代码之家  ›  专栏  ›  技术社区  ›  Maddy Sk

在我的Express Routes中,当我在路由器中使用“/”端点时,它可以工作,但当我将端点更改为“/login”时,它不工作

  •  0
  • Maddy Sk  · 技术社区  · 1 年前

    我有一个简单的快递应用程序,在routes文件夹下有下面的index.js路由文件

    索引js

    const express = require('express');
    const router = express.Router();
    
    router.get('/', (req, res) => {
      res.send('Hello, Express!');
    });
    
    module.exports = router;
    
    

    这是我的app.js文件

    const express = require('express');
    const app = express();
    
    // Require the routes file
    const indexRoutes = require('./routes/index');
    
    // Use the routes as middleware
    app.use('/', indexRoutes);
    
    // Start the server
    app.listen(3000, () => {
        console.log('Server started on port 3000');
    });
    

    上面的代码工作,如果我点击“从邮递员那里获得请求”http://localhost:3000”

    但是,如果我在index.js文件中添加端点'/login',如下所示

    const express = require('express');
    const router = express.Router();
    
    router.get('/login', (req, res) => {
      res.send('Hello, Express!');
    });
    
    module.exports = router;
    
    

    我分别更新了app.js文件,并在url上点击了Get-Requestfromsposter”http://localhost:3000/login”

    更新的app.js

    const express = require('express');
    const app = express();
    
    // Require the routes file
    const indexRoutes = require('./routes/index');
    
    // Use the routes as middleware
    app.use('/login', indexRoutes);
    
    // Start the server
    app.listen(3000, () => {
        console.log('Server started on port 3000');
    });
    

    有人能让我更深入地了解代码中的错误吗?

    添加'/login'路由后,我应该在我的邮递员响应中得到“Hello,Express!”,但我得到的响应低于,如果我从index.js和我的app.js中删除端点的登录文本,它就可以工作了

    !DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="utf-8">
        <title>Error</title>
    </head>
    
    <body>
        <pre>Cannot GET /login</pre>
    </body>
    
    </html>
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Rushabh Vora    1 年前

    您已定义 /login 路线两次,一次 app.js 文件,然后在您的 routes/index.js 文件因此,将返回 "Hello, Express!" 实际的反应是 http://localhost:3000/login/login

    要获得您想要的响应,请访问 http://localhost:3000/login ,您可以删除 login 来自任一文件。所以在 应用程序.js ,可以是 app.use('/login', indexRoutes); ,在这种情况下 路线/index.js 会的

    router.get('/', (req, res) => {
      res.send('Hello, Express!');
    });
    

    或者在 应用程序.js ,可以是 app.use('/', indexRoutes); ,在这种情况下 路线/index.js 会的

    router.get('/login', (req, res) => {
      res.send('Hello, Express!');
    });