首页 > 解决方案 > 不知道如何让快速路由工作

问题描述

我有一个index.js包含以下代码的文件...

const express = require('express');

const app = express();

app.use(express.json({ extended: false }));

app.use('/api/users/', require('./users/routes'));

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => console.log(`Server started on PORT ${PORT}`));

以及routes.js带有以下代码的文件...

const express = require('express');
const router = express.Router();

router.get('test', (req, res) => {
  console.log('im here!')
  res.send('hello from test route!');
});

module.exports = router;

我的文件结构是...

server/
  users/
    routes.js
  index.js

我可以毫无问题地启动服务器,但是,如果我尝试前往该路线/api/users/test,它不起作用并说无法获得该路线。

出于某种原因,当我创建带有.js扩展名的文件时,.jsx会出现一个图标。我正在使用 vscode 并且觉得这可能是问题但我不知道如何解决它?

作为我的路线文件中的更新...

router.get('test', (req, res) => {});

需要改成以下...

router.get('/test', (req, res) => {});

在我的index.js文件中

app.use('/api/users', require('./users/routes'));

基本上,在测试之前添加斜线并在用户之后删除斜线。

我不知道为什么这会是一个问题,但它现在可以工作了。

标签: expressroutes

解决方案


在 routes.js 中:

router
    .get ('/test',(req, res) => {
    console.log('im here!')
    res.send('hello from test route!');
});

您只是忘记了路线前面的斜线。您现在应该看到您的响应 @ http://localhost:5000/api/users/test。


推荐阅读