如何在全局响应中使用定义的变量?

时间:2019-04-04 16:46:46

标签: node.js express internationalization

我正在使用i18n库来本地化我的项目,似乎运行良好,我通过以下方式对其进行了配置:

i18n.configure({
    locales: ['it', 'en'],
    directory: path.join(__dirname, "../locales"),
    cookie: 'lang'
});
app.use(i18n.init);

从本质上讲,当我发送请求时,我可以使用response对象轻松访问本地化字符串,例如:

router.post('/signup', authController.signup);

signup方法:

exports.signup = async function (req, res) {
    console.log(res.__('Hello'));
});

现在假设我想全局访问i18n,例如:

exports.signup = async function (req, res) {
    console.log(res.__('Hello'));
    validateUser(req.body, res);
});

function validateUser(user, res) {
     if (!user.username || !user.email || !user.password || !user.passwordConfirm) {
    errors.push({ msg: res.__('provide_all_fields') });
    }
}

如您所见,我解决了将参数response作为参数传递的问题,但是我是NodeJS的新手,因此也许有另一种简单的方法来访问i18n本地化每次res对象都没有传递的字符串。

0 个答案:

没有答案