त्रुटि: मार्ग । डाल() की आवश्यकता होती है एक कॉलबैक समारोह में, लेकिन एक [वस्तु अपरिभाषित] - इस त्रुटि क्या है?

0

सवाल

मुझे पता नहीं क्यों मैं इस त्रुटि हो रही है:

C:\Users\yurit\Desktop\EcommcereAPI\node_modules\express\lib\router\route.js:202
        throw new Error(msg);
        ^

Error: Route.put() requires a callback function but got a [object Undefined]
    at Route.<computed> [as put] (C:\Users\yurit\Desktop\EcommcereAPI\node_modules\express\lib\router\route.js:202:15)
    at Function.proto.<computed> [as put] (C:\Users\yurit\Desktop\EcommcereAPI\node_modules\express\lib\router\index.js:510:19)
    at Object.<anonymous> (C:\Users\yurit\Desktop\EcommcereAPI\routes\user.js:7:8)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:93:18)
    at Object.<anonymous> (C:\Users\yurit\Desktop\EcommcereAPI\index.js:5:19)
[nodemon] app crashed - waiting for file changes before starting...

मैंने सोचा कि यह गया था के साथ एक समस्या node_modules फ़ाइल है, तो मैं नष्ट कर दिया और फिर से इसे स्थापित किया. है कि काम नहीं किया. यहाँ मेरे अन्य फ़ाइलों शामिल हो सकता है कि समस्या

user.js: मुझे लगता है कि यह यहाँ में user.js फ़ाइल है, लेकिन बीमार के बाद अन्य 2 के साथ जुड़े फाइल है सिर्फ जड़ना

const { verifyToken, verifyTokenAndAuthorization } = require("./verifyToken");

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

//UPDATE
router.put("/:id", verifyTokenAndAuthorization, async (req, res) => {
    if (req.body.password) {
      req.body.password = CryptoJS.AES.encrypt(
        req.body.password,
        process.env.PASS_SEC
      ).toString();
    }
  
    try {
      const updatedUser = await User.findByIdAndUpdate(
        req.params.id,

        {
          $set: req.body,
        },
        { new: true }
      );
      res.status(200).json(updatedUser);
    } catch (err) {
      res.status(500).json(err);
    }
  });


module.exports = router;

verifyToken.js:

const jwt = require("jsonwebtoken");

const verifyToken = (req, res, next) => {
    const authHeader = req.headers.token;
    if (authHeader){
        jwt.verify(token, process.env.JWT_SEC, (err,user) => {
            if(err) res.status(403).json("Token is not valid!");
            req.user = user;
            next();
        })
    } else {
      return res.status(401).json("You are not authenticated");
    }

    const verifyTokenAndAuthorization = (req, res, next) => {
      verifyToken(req, res, () => {
        if (req.user.id === req.params.id || req.user.isAdmin){
            next();
        } else {
          rez.status(403).json("You are not all to do that!");
        }
      })
    }

    module.exports = { verifyToken, verifyTokenAndAuthorization};
}

auth.js:

const router = require("express").Router();
const User = require("../models/User");
const CryptoJS = require("crypto-js");
const jwt = require("jsonwebtoken");

//REGISTER
router.post("/register", async (req,res) => {
    const newUser = new User({
      username: req.body.username,
      email: req.body.email,
      password: CryptoJS.AES.encrypt(req.body.password, process.env.PASS_SEC).toString(),
    });

    try {
      const savedUser = await newUser.save();
      res.status(201).json(savedUser);
    } catch (err) {
      res.status(500).json(err);
    }
});

//LOGIN

router.post("/login", async (req,res) => {
  try {
    const user = await User.findOne({ username: req.body.username});
    !user && res.status(401).json("Wrong credentials!")

    const hashedPassword = CryptoJS.AES.decrypt(
      user.password,
      process.env.PASS_SEC
    );
    const OriginalPassword = hashedPassword.toString(CryptoJS.enc.Utf8);

    OriginalPassword !== req.body.password && res.status(401).json("Wrong credentials");

    const accessToken = jwt.sign(
      {
        id: user._id,
        isAdmin: user.isAdmin,
      },
      process.env.JWT_SEC,
      {expiresIn: "3d"}
    );

    const { password, ...others} = user._doc;

    res.status(200).json({...others, accessToken});
  } catch (err) {
    res.status(500).json(err);
  }
});

module.exports = router;

मैं माफी माँगता हूँ अगर इस पोस्ट में ज्यादातर कोड, मैं बस पता नहीं और क्या कहने के लिए, क्योंकि मैं ईमानदारी से पता नहीं क्या समस्या है. किसी भी मदद की बहुत सराहना की जाएगी

express javascript node.js router
2021-11-21 22:02:55
1

सबसे अच्छा जवाब

0

यदि आप console.log(verifyToken) या verifyTokenAndAuthorization आप मिल जाएगा undefined

वहाँ एक समस्या के साथ जिस तरह से आप बनाया verifyTokenAndAuthorization समारोह और अपने module.exports. के module.exports बाहर किया जाना चाहिए के verifyToken और verifyTokenAndAuthorization समारोह नहीं होना चाहिए अंदर नेस्ट verifyToken समारोह.

2021-11-22 02:43:39

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में