5

ノードアプリを使用してAPIからデータを取得していて、そのデータをビューに表示して、ユーザーがそこで変更できるようにしたいと考えています。APIを呼び出して、ビューに渡したいJSON応答を取得します。これが私がしていることです:

    var query = 'SELECT Id, OwnerId, ActivityDateTime, EndDateTime, WhatId, WhoId, Subject FROM Event WHERE OwnerId = \'' + user.userId + '\''  ;
    // execute the query and get response
    ...
    ...
    var ev = resp.records;
    res.render('index.html', {eventData : ev});

問題は、ビューでデータを使用したいときに、未定義のエラーが発生することです。

私が行った場合:

    <div id='Subject'>#{eventData.Subject}</div>

#{eventData.Subject}のプリントアウトが表示されます

JSでデータを使用しようとすると、未定義のエラーが返されます。

    <script type="text/javascript">
    var mydata = #{eventData};
    </script>

いくつか検索した後、最初にそれを文字列化することを提案する投稿を見つけました:

    var mydata = !{JSON.stringify(eventData)};
    console.log(mydata);

ここで、構文エラー「SyntaxError:missing:afterpropertyid」が表示されます。

私は基本的な何かが欠けていると確信しており、私の人生のためにそれを理解することはできません。Jadeでそれを行う方法を説明する記事の例をたくさん見つけましたが、Jadeを使用したくないので、記事の推奨事項を使用すると、「未定義」または「不正な文字」エラーが発生します。

私はすべてアイデアがありません...助けますか?Tnx

4

1 に答える 1

4

Jonathan Ongのコメントは、実際に私を正しい方向に導いてくれました。私はhtmlのカスタマーハンドラーを使用していたので、変数を解釈しませんでした。

ejsの使用に切り替えました:

     // view engine ejs
     app.set('view engine', 'ejs');
     app.register('.html', require('ejs'));

次のプレースホルダーを使用しました。

    <%= eventData.Subject %>

これは実際に私のデータを表示させました。すべてのコメントと回答をありがとう!マイケル

于 2013-03-12T17:13:50.747 に答える