3

EJS テンプレート内でカスタム モデル メソッドを呼び出すにはどうすればよいですか? たとえば、次のモデルがあるとします。

module.exports = {
    attributes = {
        bar: {
            type: 'string'
        },

        foo: function() {
            return 'It has got to be ' + this.bar;
        }
    }
};

ここで、コントローラーで、passport.js を使用して顧客を認証します。完了したら、ユーザーモデルをセッションに保存したいと思います。これは機能しますが、カスタム メソッドにアクセスできません。

module.exports = {
    login: function(req, res) {
        passport.authenticate('local', function(err, user, info) {
            ...

            req.logIn(user, function(err) {
                req.session.user = user; // Has all the attributes, except functions.

                console.log(user.foo()); // Works!
            });
        })(req, res);
    }
};

しかし、私が言ったように、これは EJS テンプレートでは機能しません:

<%= user.foo() %>

しかし、これは:

<%= user.bar %>

なんで?

4

0 に答える 0