У меня проблема с маршрутами в моем проекте под названием review. У других моих маршрутов нет проблем, поэтому я не уверен, где я ошибся. Я продолжаю получать ошибку 404 в моем интерфейсе и в почтальоне. Я считаю, что все связано с правильной информацией. я иду по маршруту
http://localhost:8080/api/review/addReview и получите ошибку 404.
Это мой сервер.js
const express = require("express");
const cors = require("cors");
const dbConfig = require("./app/config/db.config");
const app = express();
var corsOptions = {
origin: "http://localhost:8081"
};
app.use(cors(corsOptions));
// parse requests of content-type - application/json
app.use(express.json());
// parse requests of content-type - application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true }));
const db = require("./app/models");
// const Role = db.role;
app.use('/uploads', express.static('uploads'));
db.mongoose
.connect(`mongodb+srv://[email protected]/shop?retryWrites=true&w=majority`, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
})
.then(() => {
console.info("Successfully connect to MongoDB.");
// initial();
})
.catch(err => {
console.error("Connection error", err);
process.exit();
});
// routes
// require(".app/routes/favourite.routes")(app);
require("./app/routes/auth.routes")(app);
require("./app/routes/user.routes")(app);
app.use('/api/admin', require('./app/routes/admin.routes'));
app.use('/api/review', require('./app/routes/review.routes'));
// set port, listen for requests
const PORT = 8080;
app.listen(PORT, () => {
console.info(`Server is running on port ${PORT}.`);
});
Файл моих маршрутов
const express = require('express');
const router = express.Router();
const {authJwt} = require("../middlewares");
const Review = require("../models/review.model")
router.use(function(req, res, next) {
res.header(
"Access-Control-Allow-Headers",
"x-access-token, Origin, Content-Type, Accept"
);
next();
});
router.post("/addReview", [authJwt.verifyToken], (req, res) => {
const review = new Review(req.body)
review.save((err, review) => {
if (err) return res.json({success:false, err})
Review.find({'_id': review._id})
.populate('author')
.exec((err, result) => {
if (err) return res.json({success: false, err})
return res.status(200).json({success: true, result})
})
})
})
module.exports = router ;
Мой файл модели обзора
const mongoose = require('mongoose');
const Review = mongoose.model(
"Review",
new mongoose.Schema({
prodID: String,
productTitle: String,
reviewId: String,
content: String,
author: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
]
})
);
module.exports = Review;
Я пытаюсь локальный: 8080/API/обзор/добавитьОбзор
почтовый запрос?
Вы на 100% уверены, что делаете запрос POST к http://localhost:8080/api/review/addReview
, а не GET?
Все выглядит нормально. Ваш метод маршрута api/review/addReview — POST, поэтому убедитесь, что вы отправляете почтовый запрос от Postman .
нужно добавить больше деталей отладки, например, какой маршрут вы на самом деле пытаетесь