【问题标题】:ERROR: Route.get() requires a callback function but got a [object String]错误:Route.get() 需要回调函数,但得到了 [object String]
【发布时间】:2021-02-25 20:45:11
【问题描述】:

当我从 Postman 发送 HTTP 请求时,我要做的只是从服务器取回“身份验证用户”。我只是在试验。也许,我的错误可能很明显,但我一直在努力解决这个问题。如果你能说出什么是错的,那将不胜感激。我的缩短代码 sn-p 如下:

server.js

import express from 'express';
import cors from 'cors';
import authRoutes from './routes/authRoutes.js';

const port = process.env.PORT || 9000;

const app = express();

app.use(express.json());
app.use(cors());

app.use('/api/auth', authRoutes);

app.get('/', (req, res) => {
  res.send('API is running...');
});

app.listen(port, () => console.log(`listening on localhost: ${port}`));

authRoutes.js

import express from 'express';
import { verifyUser } from '../controllers/authController.js';

const router = express.Router();
router.route('/').get('/auth', verifyUser);

export default router;

authController.js

import asyncHandler from 'express-async-handler';


const verifyUser = asyncHandler(async (req, res) => {
  res.status(200).send('auth user');
});

export { verifyUser };

【问题讨论】:

  • router.route('/').get('/auth', verifyUser); 这不正确

标签: node.js express


【解决方案1】:
router.route('/').get('/auth', verifyUser);

应该是

router.route('/').get(verifyUser);

更多关于.route()函数的信息在这里:https://expressjs.com/en/guide/routing.html

【讨论】:

  • 感谢您的建议。但是,当我点击根端点时,“API 正在运行...”消息会以我的实现方式返回。
  • 那是因为这是您的根端点。由于这条线app.use('/api/auth', authRoutes);,您的身份验证路线位于/api/auth
  • 很高兴能帮上忙,编码愉快!
猜你喜欢
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
相关资源
最近更新 更多