2

私はnodejsにかなり慣れていないので、これを解決しようとして苦しんでいますが、これまでのところ問題を見つけることができません。

アプリケーション中のある時点で、いくつかのパラメーターを使用して EJS テンプレートをレンダリングしますが、パラメーターが取得されても、それらは空であるようです....

最も基本的なケースをテストしました:

console.log(req.user);
res.render('menu.ejs', { user: String(req.user.username) });

コンソール出力:

{ id: 1,
  username: 'bob',
  password: 'secret',
  email: 'bob@example.com' }

だから私は空の値を送信していません。menu.ejs コードは次のとおりです。

<html>
    <body>
        <% user %>
    </body>
</html>

本当に簡単です。しかし、ページがレンダリングされると、空のページしか得られません...さらにHTMLを使用しても、ユーザーの値を取得し続けます...

アプリケーションのある時点で、パスポートを使用してユーザーを認証し、フラッシュを使用して、次の方法でメッセージを取得できました。

res.render('login.ejs', { message: req.flash('message') });

しかし、それでも menu.ejs エラーが残ります。ファイルの名前を変更し、渡されたパラメーターの名前を変更し、さらにパラメーターを追加し、渡されたパラメーターの値をハードコーディングしました...そして、常に同じ結果が得られます =(

プロジェクトの依存関係:

"dependencies": {
    "express": "~4.9.x",
    "express-session": "1.9.3",
    "mysql ": "2.5.3",
    "body-parser": "1.10.0",
    "passport": "0.2.1",
    "passport-local": "1.0.0",
    "connect-flash": "0.1.1",
    "cookie-parser": "1.3.3",
    "ejs": "1.0.0"
}

何か案は?

4

1 に答える 1

5

変更してみる

<% user %>

<%= user %>

私の知る限り、これはテンプレート変数を出力する通常の構文であるためです。

于 2014-12-18T11:38:17.270 に答える