Почему мои конечные точки отображают raw json в браузере, когда я обновляю страницу? - PullRequest
0 голосов
/ 26 августа 2018

Мое приложение стека MEAN возвращает необработанный json в браузер вместо моего HTML, когда я обновляю страницу. Если я получаю доступ к страницам с помощью моих перенаправленных кнопок или иду вперед и назад, это нормально. Но если я введу URL-адрес вручную или обновлю страницу, на которой я работаю, браузер покажет мои необработанные данные.

Я не получаю ошибок в консоли или на сервере.

Пример метода в моем сервисе:

getSingleCompany(category, company) {
  return this.http.get(`${this.BASE_URL}/${category}/${company}`)
    .map((res) => res.json())
    .catch((err) => {
      return Observable.throw(err);
    });
}

Маршруты:

export const routes: Routes = [

  { path: '', component: CategoriesComponent },
  { path: 'category/men-apparel', component: MenApparelComponent },
  { path: 'category/womens-apparel', component: WomenApparelComponent },
  { path: 'profile/:id', component: ProfileComponent, canActivate: [AuthService] },
  { path: ':category/:company', component: CompanyProfileComponent },

];

Сервер:

//Get our API routes
const api = require("./server/routes/api");
const auth = require("./server/routes/auth");

Каждый маршрут, кроме моих маршрутов авторизации (для входа в систему и регистрации) находится в моем API

app.use('/', api);
app.use('/', auth);

Все компилируется в мою папку dist, содержащую index.html

//Catch all other routes and return the index file.
//Catch-all route MUST come after all other API routes have been defined.
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/index.html'));
});

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

//Retrieve all the reviews for the company and populate
router.get('/:category/:company', (req, res, next) => {

  Company.findOne({ "companyName": req.params.company}, (err, company) => {

    // console.log("printing all reviews", company.reviews);

    if(!company) {
      res.status(400).json({ message: "Can't find the company you're looking for at the moment." });
    } else {

        Review.find({'_id': { $in: company.reviews }})
        .populate("createdBy")
        .exec((err, review) => {
          if (err) {
            next(err);
            return;
          } else {

            res.json({
                   message: "Retrieving your company",
                   company: company,
                   reviews: review
                 });

            console.log("returning review", review);
          }
        });

  }
});
});

Я чувствую, что упускаю что-то очевидное. Пробовал разные вещи, но не смог понять, что я делаю не так. Хотите знать, могут ли какие-нибудь опытные ребята из Angular / Node понять, что я делаю неправильно.

Спасибо, что взглянули.

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