节点js动态地需要页面问题

时间:2018-06-01 12:46:43

标签: node.js

我创建了一个节点js app,其中包含app.js中的以下代码

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(function(req, res, next) {
var language = (req.headers['accept-language'] == 'ar' ? ar : en);
lang = require('./server/lang/' + language);
next();
});

里面的lang文件夹ar.js和en.js就在那里。响应是基于这种语言发送的。朗格变量是全局设置的,我可以在应用程序的任何地方使用它。当尝试使用邮递员发送请求时是完美的工作和lang变量是基于accept-language标头设置的。但是当从客户端发送大量请求时它无法正常工作,即lang变量没有正确设置。是否有任何可用的解决方案。

1 个答案:

答案 0 :(得分:0)

包装恰好在运行时之前发生,因此语言变量还没有价值。

你可以这样做:

var ar = require("./server/lang/ar");
var en = require("./server/lang/en");
var language = (req.headers['accept-language'] == 'ar' ? ar : en);

请告诉我这是否适合您。

或者当您有更多语言时,您可以使用巨大的switch-case语句,或者需要对象中的所有语言。