Это нормально, чтобы сделать http-запрос на node.js - PullRequest
0 голосов
/ 12 февраля 2019

Я использую SSR с реагировать и i18next.У меня нет большого опыта работы с Node.js, поэтому вопрос: это нормальный способ сделать внешний http-запрос в начале выполнения серверного сценария и передать весь код левого серверного сценария в thenфункция возвращенного экземпляра Promise в качестве более поздней части продолжения скрипта.

Код сервера, который связывается и затем запускается

server.js

import express from 'express';
import promiseRequest from 'request-promise';
import i18next from "i18next";
import middleware from "i18next-express-middleware";
import render from './render';

const app = express();

promiseRequest.get('https://api/localization')
  .then(data => {
    i18next.use(middleware.LanguageDetector);
    i18next.init();

    app.use(middleware.handle(i18next));

    app.listen(3000, () =>
      console.log('App is running')
    );

    return app;
  });

Причина, по которой я так поступаю, заключается в том, что мне нужно запустить i18n на основе ответа от сервера.

1 Ответ

0 голосов
/ 12 февраля 2019

Зачем вам нужно сделать запрос API, чтобы выяснить ваши потребности в локализации?Разве это не будет частью входящего запроса на ваш статический сервер (дай мне сайт на английском, французском и т. Д.)?Я не уверен насчет вашего варианта использования.Вы пытаетесь использовать несколько экземпляров статического сервера для обслуживания разных языков?

Распространенная модель, которую я видел, состоит в том, чтобы предварительно сгенерировать несколько статических файлов для каждой локализации, а затем обслуживать их на основеrequest, например: есть маршрут, который возвращает английскую версию, когда пользователь отправляет запрос на http://yourwebsite.com/en, французский на http://yourwebsite.com/fr или http://yourwebsite.fr, и т. д.

...