Маршрут объявлен правильно, но все еще получает Не удалось получить ошибку ответа - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть API с использованием Express и узла.

Вот мой app.js

const express = require('express');
const bodyParser = require('body-parser');
const dotenv = require('dotenv');

// setup dotenv to read environment variables
dotenv.config()

// Load Environment Varibles
const env = require('./utils/env');

// INIT MONGODB CONNECTION
require('./mongoose');

// create a new express application
const app = express();

// setup bodyparser middleware to read request body in requests
// we're only reading JSON inputs
app.use(bodyParser.json());

// Listen to API routes
const apiRoutes = require('./routes')
app.use('/api', apiRoutes);

// Start listening to requests
app.listen(env.PORT, () => {
  console.log(`Server started on PORT ${env.PORT}`);
});

А вот импортируемые маршруты API

const express = require('express');
const apiController = require('./apiController');
const apiValidator = require('./apiValidator');
const router = express.Router();

router.post('/login', apiValidator.loginUserValidator, apiController.loginUserController);

router.get('/rand', (req, res) => {
  res.send('Some randon text');
});

module.exports = router;

Вот промежуточное ПО

const {
  failureResponse
} = require('./../utils/response');
const errorcodes = require('./../utils/errorcodes');

const loginUserValidator = (req, res, next) => {
  const user = req.body;
  if (!user.username) {
    return res.status(400).json(failureResponse(errorcodes.ERROR_INVALID_BODY_PARAMETER, "Invalid username"));
  }

  if (!user.password) {
    return res.status(400).json(failureResponse(errorcodes.ERROR_INVALID_BODY_PARAMETER, "Invalid password"));
  }
  if (user.authTokens) {
    delete user.authTokens;
  }
  next();
};

module.exports = {
  loginUserValidator
};

Вот контроллер

const User = require('./../models/user');
const {
  successResponse,
  failureResponse
} = require('./../utils/response');
const errorcodes = require('./../utils/errorcodes');

const loginUserController = async (req, res) => {
  try {
    const user = req.body;
    // find if the user already exists
    const existingUser = await User.findOne({
      username: user.username
    });

    if (existingUser) {
      // user exists. generate token and login user
      console.log('Existing user login');
      const token = existingUser.generateAuthToken();
      return res.status(200).json(successResponse(token));
    } else {
      console.log('New user login');
      const savedUser = await new User(user).save();
      const token = savedUser.generateAuthToken();
      return res.status(200).json(successResponse(token));
    }
  } catch (e) {
    console.log(e);
    return res.status(400).json(failureResponse(errorcodes.ERROR_SERVER_ERROR, "Unable to login user"));
  }
};

module.exports = {
  loginUserController
};

Здесь возникает проблема, когда я пытаюсь найти маршрут входа от Почтальона, я получаю сообщение об ошибке, котороеговорит Could not get any response.

Но когда я попадаю на ранд-маршрут, вывод правильный.Так что проблема не в расположении кода.Почему я не могу использовать здесь маршрут входа в систему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...