在node.js上发出HTTP请求是否正常

时间:2019-02-12 18:28:14

标签: javascript node.js express i18next ssr

我正在将SSR与react和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 :(得分:0)

为什么您需要发出api请求来确定您的本地化需求?那不是对您的静态服务器的传入请求的一部分吗(给网站提供英语,法语等)?我不清楚您的用例。您是否要让静态服务器的多个实例提供不同的语言服务?

我看到的一个常见模型是,每个本地化都有多个预先生成的静态文件,然后根据请求将其提供服务,例如:当用户提出以下要求时,有一条返回英文版本的路由http://yourwebsite.com/en,法语为http://yourwebsite.com/frhttp://yourwebsite.fr的法语,等等。