2016-03-31 15 views
2

JSとnode.jについて覚え始めました。私は、MySQLのDBからejsコンポーネントを介してhtmlにデータを送信する際にいくつかの練習をしようとしています。私はejs.render(data、{data:something_from_DB})を使ってみました。 「データ」によって識別されるフェッチされた情報(something_from_DB)を送信する。私はhtmlのejsコードで識別子 "data"を使用しましたが、データがhtmlファイルに定義されていないと不平を言いました。ejsコンポーネントを使用してjsからhtmlにデータを送信する

ここにjsコードがあります。

var mysql = require('mysql'); 
var fs = require('fs'); 
var http = require('http'); 
var express = require('express'); 
var ejs = require('ejs'); 
var app = express(); 
app.use(app.router); 

var client = mysql.createConnection({ 
    user: 'username', 
    password: 'password', 
    database: 'database_name' 
}); 

app.get('/', function(req, res){ 

    fs.readFile('list.html', 'utf8', function(error, data){ 
     client.query('SELECT * FROM test_table', function(error, results){ 
      console.log(results); 
      res.send(ejs.render(data), {data: results}); 
     }); 
    }); 
}); 

そして、ここでは、私は結果を印刷するとき

<% data.forEach(function(item, index){ %> 
<tr> 
    <td><%= item.id %></td> 
    <td><%= item.name %></td> 
    <td><%= item.phone_no %></td> 
</tr> 
<% }); %> 

するlist.htmlから一部だ、私が取得:正常に見える

[ RowDataPacket { id: 1, name: 'PETER', phone_no: '0100000000' } ] 

を。私はこれを "データ"で渡すようにしていますが、これは起こっていないと思います。

文脈外の言葉を使用している場合は、私に修正してください。

答えて

0

簡単な間違いがあると思います。ちょっと試してみてください。

 res.render('ejs file name',{data: results,}); 
+0

これは質問に対する回答ではありません。コメントでなければなりません。 [コメントはいつですか](https://stackoverflow.com/help/privileges/comment)をご覧ください。 十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、投稿に[comment](https://stackoverflow.com/help/privileges/comment)することができます。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 – Dwhitz

関連する問題