Anonymous
Пожалуйста, как я могу исправить эту ошибку "TypeError: не может установить свойства не определенного (настройка" userId
Сообщение
Anonymous » 11 июл 2025, 15:04
Я хочу отобразить различные заказы на продукты питания в корзине питания клиентов. < /p>
Это мой файл "server.js".
Код: Выделить всё
import express from "express";
import cors from "cors";
import { connectDB } from "./config/db.js";
import foodRouter from "./routes/foodRoute.js";
import userRouter from "./routes/userRoute.js";
import foodbasketRouter from "./routes/foodbasketRoute.js";
import "dotenv/config";
// app config
const app = express();
const port = process.env.PORT || 4000;
// middleware
app.use(express.json());
app.use(cors());
// db connection
connectDB();
// api endpoints
app.use("/api/food", foodRouter);
app.use("/images", express.static("uploads/foods") ); // image path
app.use("/api/user", userRouter);
app.use("/api/foodbasket", foodbasketRouter);
app.get( "/", ( request, response ) => {
response.send("All Good!");
} );
app.listen( port, () => {
console.log(`Server Started on http://localhost:${port}`);
} );< /code>
< /div>
< /div>
< /p>
Это мой "foodbasketrout.js" file. < /p>
import express from "express";
import { addTofoodbasket, removeFromfoodbasket, showFoodbasket } from "../controllers/foodbasketController.js";
import authMiddleware from "../middleware/auth.js";
const foodbasketRouter = express.Router();
foodbasketRouter.post("/addtofoodbasket", authMiddleware, addTofoodbasket);
foodbasketRouter.post("/removefromfoodbasket", authMiddleware, removeFromfoodbasket);
foodbasketRouter.post("/showfoodbasket", authMiddleware, showFoodbasket);
export default foodbasketRouter;< /code>
< /div>
< /div>
< /p>
Это мой "foodbasketController.js" Файл. < /p>
import User from "../models/User.js";
//! show customer foodbasket
const showFoodbasket = async (request, response) => {
try {
let userData = await User.findById(request.body.userId);
let foodbasket = await userData.foodbasket;
response.json({success: true, foodbasket});
} catch (error) {
console.log(error);
response.json({success: false, message: "Error Occured!"});
}
};
export { addTofoodbasket, removeFromfoodbasket, showFoodbasket};< /code>
< /div>
< /div>
< /p>
Это мой «auth.js».import jwt from "jsonwebtoken";
const authMiddleware = async (request, response, next) => {
const {token} = request.headers;
if (!token) {
return response.json( {success: false, message: "Not Authorized! Please Login"} );
}
try {
const tokenDecode = jwt.verify(token, process.env.JWT_SECRET);
request.body.userId = tokenDecode.id;
next();
} catch (error) {
console.log(error);
response.json( {success: false, message: "Error! Authentication Failed!"} );
}
};
export default authMiddleware;
Это url: "http: // localhost: 4000/api/foodbasket/showfoodbasket". Выбрасывает эту ошибку "TypeError: не может установить свойства неопределенного (настройка" userId ') на Authmiddleware ".
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -undefined
1752235472
Anonymous
Я хочу отобразить различные заказы на продукты питания в корзине питания клиентов. < /p> Это мой файл "server.js".[code]import express from "express"; import cors from "cors"; import { connectDB } from "./config/db.js"; import foodRouter from "./routes/foodRoute.js"; import userRouter from "./routes/userRoute.js"; import foodbasketRouter from "./routes/foodbasketRoute.js"; import "dotenv/config"; // app config const app = express(); const port = process.env.PORT || 4000; // middleware app.use(express.json()); app.use(cors()); // db connection connectDB(); // api endpoints app.use("/api/food", foodRouter); app.use("/images", express.static("uploads/foods") ); // image path app.use("/api/user", userRouter); app.use("/api/foodbasket", foodbasketRouter); app.get( "/", ( request, response ) => { response.send("All Good!"); } ); app.listen( port, () => { console.log(`Server Started on http://localhost:${port}`); } );< /code> < /div> < /div> < /p> Это мой "foodbasketrout.js" file. < /p> import express from "express"; import { addTofoodbasket, removeFromfoodbasket, showFoodbasket } from "../controllers/foodbasketController.js"; import authMiddleware from "../middleware/auth.js"; const foodbasketRouter = express.Router(); foodbasketRouter.post("/addtofoodbasket", authMiddleware, addTofoodbasket); foodbasketRouter.post("/removefromfoodbasket", authMiddleware, removeFromfoodbasket); foodbasketRouter.post("/showfoodbasket", authMiddleware, showFoodbasket); export default foodbasketRouter;< /code> < /div> < /div> < /p> Это мой "foodbasketController.js" Файл. < /p> import User from "../models/User.js"; //! show customer foodbasket const showFoodbasket = async (request, response) => { try { let userData = await User.findById(request.body.userId); let foodbasket = await userData.foodbasket; response.json({success: true, foodbasket}); } catch (error) { console.log(error); response.json({success: false, message: "Error Occured!"}); } }; export { addTofoodbasket, removeFromfoodbasket, showFoodbasket};< /code> < /div> < /div> < /p> Это мой «auth.js».import jwt from "jsonwebtoken"; const authMiddleware = async (request, response, next) => { const {token} = request.headers; if (!token) { return response.json( {success: false, message: "Not Authorized! Please Login"} ); } try { const tokenDecode = jwt.verify(token, process.env.JWT_SECRET); request.body.userId = tokenDecode.id; next(); } catch (error) { console.log(error); response.json( {success: false, message: "Error! Authentication Failed!"} ); } }; export default authMiddleware;[/code] Это url: "http: // localhost: 4000/api/foodbasket/showfoodbasket". Выбрасывает эту ошибку "TypeError: не может установить свойства неопределенного (настройка" userId ') на Authmiddleware ". Подробнее здесь: [url]https://stackoverflow.com/questions/79698300/please-how-can-i-fix-this-error-typeerror-cannot-set-properties-of-undefined[/url]