簡體   English   中英

節點:Route.get() 需要一個回調函數,但得到了一個 [object Undefined]

[英]Node: Route.get() requires a callback function but got a [object Undefined]

我試圖在節點 js 中創建一個簡單的 CRUD 應用程序,我得到Route.get() 需要一個回調函數但是router.get("/:id", userController.getUser);

路由.js

const express = require('express')
const userController= require('../controllers/userController.js')

const router = express.Router()

/* READ */
router.get("/:id", userController.getUser);

module.exports = router

控制器.js

const getUser = async (req, res) => {
  try {
    const { id } = req.params;
    const user = await User.findById(id);
    res.status(200).json(user);
  } catch (err) {
    res.status(404).json({ message: err.message });
  }
}

const Function..

const AnotherFunction..


module.exports = {
   getUser,
   Function,
  AnotherFunction,
}


console.log(userController.getUser.toString()) 打印:

async (req, res) => {
  try {
    const { id } = req.params;
    const user = await User.findById(id);
    res.status(200).json(user);
  } catch (err) {
    res.status(404).json({ message: err.message });
  }
}

我沒有正確的訪問權限來推送你的回購協議,所以在這里解釋這個問題。

在您的auth.js ,您已將verifyToken函數導出為默認導出。

module.exports = verifyToken

但是在postsController.js中導入時你正在解構

const {verifyToken} = require ('../middleware/auth.js')

像這樣導入將獲得正確的功能=>

const verifyToken = require("../middleware/auth.js");

如下更改您的 postsController 文件。 它應該工作。

const express = require("express");
const verifyToken = require("../middleware/auth.js");
module.exports = verifyToken;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM