【问题标题】:KrakenJS localization error messagesKrakenJS 本地化错误消息
【发布时间】:2015-01-07 19:38:56
【问题描述】:

有人知道如何本地化来自控制器的错误消息吗?谁能给我一个链接来解决这个问题?

这是我现在遇到的问题。

var localStrategy = function localStrategy() {
'use strict';

return new LocalStrategy(function (username, password, done) {
    OUR_API.login({
        'username': username,
        'password': password
    }).then(function (accessToken) {
        return done(null, {
            'username': username,
            'accessToken': accessToken
        });
    }, function (err) {
        var errMessage;
        if(err.message.error.code === 123){
            errMessage = 'The email or password you’ve entered is incorrect.';
        }
        if(err.message.error.code === 125){
            errMessage = 'Your account has been locked.';
        }

        return done(null, false, errMessage);
    });
}); };

这是我的灰尘页面的一部分,用于显示消息。

  {?messages}
    <ul>
       {#messages}
         <li>{.}</li>
       {/messages}

    </ul>
  {/messages}

这是渲染我的灰尘模板的代码,这是一个 passportjs 实现:

  model.messages = req.flash('error');
  res.render('login', model);

如您所见,我有一个硬编码的 errMessage,我该如何本地化呢?我使用的是 krakenjs,这段代码是 Passportjs 的认证策略。

还有关于如何正确实施的任何建议?

【问题讨论】:

    标签: node.js passport.js kraken.js


    【解决方案1】:

    我已经解决了我的问题。

    我将硬编码消息更改为只返回一个代码,然后在灰尘上,我根据控制器传递的代码显示适当的消息。

    这是控制器上的代码。

     return new LocalStrategy({
        passReqToCallback: true
    }, function (req, username, password, done) {
        OUR_API.login({
            username: username,
            password: password
        }).then(function (accessToken) {
            return done(null, {
                username: username,
                accessToken: accessToken
            });
        }, function (err) {
            var errCode;
            if (err && err.message && err.message.error) {
                errCode = err.message.error.code.toString();
            }
            return done(null, false, errCode);
        });
    });
    

    然后在尘页上。

       {?errorCode}
           {@select key="{errorCode}"}
             {@eq value="0001"}{@pre type="content" key="error.message.0001"/}{/eq}
             {@eq value="0002"}{@pre type="content" key="error.message.0002"/}{/eq}
             {@default}{@pre type="content" key="error.message.default"/}{/default}
           {/select}
       {/errorCode}
    

    希望这可以帮助任何与我有同样问题的人。或者任何人有更好的想法?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多