Это мой файл "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