![](/img/trans.png)
[英]Node JS : Route.get() requires a callback function but got a [object Undefined] While using ES6 Modules
[英]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.