我正在将SSR与react和i18next一起使用。我没有多少使用Node.js的经验,所以问题是:在服务器脚本执行开始时发出外部http请求,并将所有剩余的服务器脚本代码作为脚本的后续部分传递到返回的Promise实例的then函数中,这是一种正常的方式吗?
捆绑后启动的服务器代码
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。
发布于 2019-02-13 02:42:05
为什么您需要发出api请求来确定您的本地化需求?这难道不是静态服务器传入请求的一部分吗(给我提供英语、法语等语言的网站)?我不清楚你的用例。您是否正在尝试让静态服务器的多个实例服务于不同的语言?
我见过的一种常见模型是,每个本地化都预先生成多个静态文件,然后根据请求提供它们,例如:当用户向http://yourwebsite.com/en发出请求时,有一个返回英语版本的路由,http://yourwebsite.com/fr或http://yourwebsite.fr上的法语路由,等等。
https://stackoverflow.com/questions/54656493
复制相似问题