Ответы пользователя по тегу Node.js
  • Почему без модуля path не работает путь от файла?

    search
    @search
    мама говорит что я особенный
    Важно знать каким образом вы обращаетесь к файлу. Но готов предположить что это что-то типа fs.readFile. Если передать относительный путь в большинство функций модуля fs, то файл будет резолвиться относительно рабочей директории проекта. Рабочую директорию проекта можно узнать выполнив process.cwd().

    Рабочая директория проекта обычно не меняется от модуля к модулю.
    Ответ написан
  • Как связать компоненты между страницами?

    search
    @search
    мама говорит что я особенный
    Вынесите объявление сервиса в `providers` главного модуля. И уберите объявление сервиса из `providers` других модулей.

    Каждый раз когда вы добавляете сервис в `providers` модуля, анугяр создаёт экземпляр сервиса именно для этого модуля. И в другом модуле этот экземпляр виден не будет.
    Ответ написан
    Комментировать
  • Ошибка http запроса при подключении SSL почему?

    search
    @search
    мама говорит что я особенный
    Это называется CORS https://developer.mozilla.org/ru/docs/Web/HTTP/CORS

    Это можно поправить только на стороне сервера, передав вот такой хедер: Access-Control-Allow-Origin: domain.ru

    Этим хедером вы разрешите сайтам на domain.ru совершать запросы к вашему серверу. Если сервер не передает такой хедер, то запросы режет сам браузер и на стороне клиента это не исправить никак.

    Если вам заранее не известно на каком домене будет находиться клиент, то можно передавать Access-Control-Allow-Origin: *
    Ответ написан
    Комментировать
  • Как изменить new Promise на util.promisify?

    search
    @search
    мама говорит что я особенный
    Как-то так:

    Location.getLocationByUrlSlugWithPromise = util.promisify(Location.getLocationByUrlSlug.bind(Location));
    Ответ написан
    Комментировать
  • Почему angular не редеректит, а пытается загрузить html?

    search
    @search
    мама говорит что я особенный
    1. Angular не будет редиректить. Он так не работает. Он использует XmlHttpRequest под капотом, а XHR работает так в вашем случае: выполняет запрос -> получает редирект от сервера -> идёт по адресу редиректа -> достаёт по этому адресу полученный ответ и возвращает ангуляру. А ангуляр пытается распарсить полученный ответ. И ожидает при этом получить JSON, но получает при этом HTML, поэтому выдаёт ошибку

    2. this.httpService.postData(JSON.stringify(this.user)). Тут не совсем понятно зачем юзер превращается в строку и затем строка постится. Обычно постится сразу JSON объект. Если только там не какая-то дикая дичь на сервере. Но лучше решить вопрос путём поста JSON объекта, а не строки. Меньше страдать прийдётся

    Теперь по подводу редиректов на стороне сервера. SPA так не работают. Сервак не занимается редиректами. Это не его работа. Работа сервака вернуть JSON ответ и HTTP status 200 в случае если он может вернуть то что от него ждут. И ошибку в противном случае. Вот тут подробнее https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

    Вобще, если хотите, не сильно расстраиваться из-за дурацкого Ангуляра (да и любого другого SPA фреймворка), то желательно ознакомиться и начать использовать oAuth или JWT.

    Если вы дочитали до этого момента и сказали "ну тебя в баню со своими советами, я хочу чтоб редиректило как у нормальных пацанов", то можете сделать это вот так:

    import { tap } from 'rxjs/operators';
    
    return this.http.post('/login', user, {observe: 'response', responseType: 'text'}).pipe(
      tap(response => {
        location.href = response.url;
      })
    );
    Ответ написан
    1 комментарий
  • Как импортировать js файл в TypeScript проект?

    search
    @search
    мама говорит что я особенный
    Опишите интерфейс библиотеки в .d.ts файле. Назовите этот файл как-нибудь типа global.d.ts и положите в корень проекта (там где все ts файлы лежат, обычно это папка /src). Подробнее можно почитать тут https://basarat.gitbooks.io/typescript/docs/types/... . Вот полная документация https://www.typescriptlang.org/docs/handbook/decla... .

    Сам файл будет выглядеть как-то так:

    // global.d.ts
    declare function ConfigService();
    Ответ написан