我正在将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。
答案 0 :(得分:0)
为什么您需要发出api请求来确定您的本地化需求?那不是对您的静态服务器的传入请求的一部分吗(给网站提供英语,法语等)?我不清楚您的用例。您是否要让静态服务器的多个实例提供不同的语言服务?
我看到的一个常见模型是,每个本地化都有多个预先生成的静态文件,然后根据请求将其提供服务,例如:当用户提出以下要求时,有一条返回英文版本的路由http://yourwebsite.com/en,法语为http://yourwebsite.com/fr或http://yourwebsite.fr的法语,等等。