Реагировать не на связь с сервером узла - PullRequest
2 голосов
/ 22 апреля 2020

Чтобы завершить этот проект, мне нужно, чтобы мой клиент связался с моим сервером. Что я хочу: «/ auth» должен просто вернуть строку «Authorize». Что я получаю: строковая копия всей разметки в моем индексе. html.

Фронт, используя reactJS:

 authorize()
  {
      fetch('/auth')
        .then(res => res.text())
        .then(data=>{
            console.log('auth'+data)
        })
        .catch(err => err);
  }

  async componentDidMount()
  {
      try
      {       
        this.authorize();
      }
      catch(e)
      {
          console.log(e);
      }
  }

Бэкэнд:

 var createError = require('http-errors');
    var express = require('express');
    var path = require('path');
    var cookieParser = require('cookie-parser');
    var logger = require('morgan');
    var cors = require("cors");

    const dotenv = require('dotenv');
    dotenv.config();

    const jwt = require('express-jwt');
    const jwksRsa = require('jwks-rsa');

    var indexRouter = require("./routes/index");
    var authRouter = require("./routes/auth");

    var app = express();
    app.use(cors());

    // view engine setup
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');

    app.use(logger('dev'));
    app.use(express.json());
    app.use(express.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));

    app.use('/', indexRouter);
    app.use('/auth', authRouter);

Пример маршрутизатора:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function (req, res, next) 
{ 
  res.send("router/index");
});

module.exports = router;

1 Ответ

1 голос
/ 22 апреля 2020

app.use будет автоматически соответствовать всем маршрутам, которые расширяют базовый маршрут, в вашем случае /, поэтому все запросы к /* будут обрабатываться вашим indexRouter. Подробнее см. http://expressjs.com/en/guide/using-middleware.html.

Один из способов решить эту проблему - изменить порядок:

app.use('/auth', authRouter);
app.use('/', indexRouter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...