Когда я использую Postman или делаю запрос в своем браузере для проверки моих маршрутов API, я получаю сообщение об ошибке 404 в консоли браузера по адресу users/:1
(ошибок в консоли сервера нет). Сейчас в приложении очень мало функций, я просто пытаюсь следовать учебному пособию (курс Брэда Траверси React Front to Back на Udemy) и настраивать и тестировать свои маршруты. Я просмотрел все инструкции до этого момента и сверил свой код с завершенной кодовой базой в репозитории GH учебника, и он кажется правильным, но я уверен, что упускаю что-то небольшое. Все зависимости были установлены и проверены через NPM
. Ниже приведен код для:
сервер.js
//* Dependencies
const express = require("express");
const connectDB = require("./config/db");
const path = require("path");
const app = express();
//* Connect to database
connectDB();
//* Init Middleware
app.use(express.json({ extended: false }));
//*Define routes
app.use("/api/users", require("./routes/users"));
app.use("/api/auth", require("./routes/auth"));
app.use("/api/contacts", require("./routes/contacts"));
const PORT = process.env.PORT || 8080;
//*Initialize server
app.listen(PORT, () => console.info(`Server listening on port ${PORT}`));
пользователи.js
const express = require("express");
const router = express.Router();
const config = require("config");
const User = require("../models/User");
//* @route: POST api/users
//* @desc: register a user
//* @access: Public
router.post("/", (req, res) => {
res.send(req.body);
});
module.exports = router;
пакет.json
{
"name": "openhousev2",
"version": "0.1.0",
"description": "Open Source Contact Management Platform\u001b[1;5D\u001b[1;5D\u001b[1;5D\u001b[1;5D\u001b[1;5D",
"main": "server.js",
"scripts": {
"start": "node server.js",
"server": "nodemon server.js"
},
"author": "LucSedirae",
"license": "SEE LICENSE IN LICENSE",
"dependencies": {
"bcryptjs": "^2.4.3",
"config": "^3.3.3",
"express": "^4.17.1",
"express-validator": "^6.8.1",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.11.8"
},
"devDependencies": {
"concurrently": "^5.3.0",
"nodemon": "^2.0.6"
}
}
Структура файла
.
|-- server.js
|-- package.json
|-- __routes
|-- users.js
|-- auth.js
|-- contacts.js
|-- __models
|-- User.js
|-- __config
|-- db.js
|-- default.json
Это потому, что вы не написали серверный код для конечной точки users/:1
.
Что вы можете сделать для проверки, так это отправить запрос POST от Postman ar users
, который даст вам результат, как вы res.send(req.body)
в users.js
.
Моя проблема заключалась в том, что в Postman я оставил тип запроса по умолчанию «получить», хотя мой маршрут был для почтового запроса. Изменение типа req на POST имитировало отправку данных по моему маршруту и работало, как и ожидалось. Браузер не собирался быть подходящим местом для тестирования моего кода до этого момента, поскольку мне нечего было публиковать.
Спасибо @theWellHopeErr Это то, что я ввожу в браузер и в почтальон с одной и той же ошибкой, появляющейся в обоих: localhost: 8080/api/users. :1 не является идентификатором, переданным через маршрут, это просто место, где консоль браузера идентифицирует ошибку как возникающую.