#javascript #express #postman #middleware
#javascript #экспресс #postman #промежуточное программное обеспечение
Вопрос:
Я пытался разработать API для использования в приложении MEAN stack. API обрабатывает регистрацию и аутентификацию пользователя. Что было действительно забавно, так это то, что он не принимал никаких запросов от Postman. Даже простой запрос ‘/’ get с ответом не будет работать. Ошибка, которую я получаю от postman, выглядит следующим образом
Мой index.js это как показано ниже:
const exp = require('express');
const bp = require('body-parser');
const { success, error } = require('consola')
const { connect } = require('mongoose');
// Bring in the app constants
const { DB, PORT } = require("./config");
// Initialize the application
const app = exp();
// Call the middleware
app.use(cors());
app.use(bp.json);
// User Router Middleware
app.use("/api/users", require("./routes/users"));
app.use("/basic", require("./routes/basic"));
// Connect to the database
const startApp = async () => {
try {
// Connection With DB
await connect(DB, {
useFindAndModify: true,
useUnifiedTopology: true,
useNewUrlParser: true
});
success({
message: `Successfully connected with the Database n${DB}`,
badge: true
});
// Start Listenting for the server on PORT
app.listen(PORT, () =>
success({ message: `Server started on PORT ${PORT}`, badge: true })
);
} catch (err) {
error({
message: `Unable to connect with Database n${err}`,
badge: true
});
startApp();
}
};
startApp();
Моя базовая маршрутизация заключается в следующем, она сама по себе даже не будет работать для меня:
router.get('/', function (req, res) {
res.send('Hello World!' req.body)
})
module.exports = router;
Ответ postman такой, как на скриншоте ниже:
Сервер, похоже, запущен, но, похоже, просто отклоняет все запросы.
mongodb://localhost:27017/node-auth
SUCCESS Server started on PORT 3000 16:26:36
Комментарии:
1. Каков код состояния ошибки? пожалуйста, предоставьте изображение с подробными сведениями об ошибке
2. что у вас получилось
localhost:3000/
?3. Вы вызываете app.use(cors()); но функция cors не импортируется. Документы
4. Где определен ваш get router?
/
внутри маршрутизатора не означаетhttp://localhost:3000/
на postman.5. Маршрутизатор определяется в начале файла как «const router = require(‘express’). Router();»
Ответ №1:
Импортируете ли вы express в свой базовый маршрутизатор ?
это должно выглядеть примерно так :
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
res.send(`Hello World! ${req.body}`);
});
module.exports = router;
Комментарии:
1. Привет, он импортирован, да. const router = require(‘экспресс’) . Router(); Но все еще не работает
Ответ №2:
Мои извинения.
Мне не хватало фигурной скобки (), которая позволяла приложению запускаться, но некорректно. Иногда все, что требуется, — это еще один глаз.
До: app.use(bp.json);
после: app.use(bp.json());
Теперь работает отлично.
Комментарии:
1. Пожалуйста, не публикуйте ответы с опечатками; если возможно, просто удалите вопрос.
Ответ №3:
Вы не используете маршрутизатор из того же экземпляра express в index.js