【发布时间】:2016-05-08 16:05:02
【问题描述】:
我有一个包含 46 个条目的表,我需要随机选择一个,然后使用来自该查询的数据并将其传递给我的车把文件。我不确定如何随机查询数据库,也不确定如何实际返回行数据以供我在把手文件中使用。
index.js
var express = require('express');
var router = express.Router();
var pg = require('pg').native;
var score = 0;
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', {
title: 'Quiz Game',
});
});
//Make a random query here and return it in res.render
router.post('/', function(req,res) {
pg.connect(process.env.DATABASE_URL + "?ssl=true", function(err, client, done) {
client.query('SELECT * FROM characters', function(err,result) {
done();
if(err) {
next(err);
}
else {
console.log(result);
res.render('game', {
result,
diff: req.body.difficulty,
title: 'Hiragana Quiz',
currScore: score
});//response.render
}
});//client.query
});//pg.connect
});
router.get('/game', function(req, res) {
console.log("Got URL");
res.render('game',
{
title: 'Hiragana Quiz',
diff: 'normal',
currScore: score,
name: 'Go select a difficulty',
img: 'http://i.imgur.com/rvUlv4A.jpg'
});
});
module.exports = router;
当我将查询结果记录到控制台时,我确实获得了数据,但我不确定如何在我的车把文件中使用它。我把它作为结果放在 res.render 中,因为我的教授在其中一个示例中就是这样做的,但我不知道如何正确访问结果。
{ command: 'SELECT',
rowCount: 1,
rows:
[ { id: 1,
name: 'ka',
img: 'https://upload.wikimedia.org/wikipedia/commons/2/25/Japanese_Hiragana_kyokashotai_small_KA.png' } ],
fields:
[ { name: 'id', dataTypeID: 23 },
{ name: 'name', dataTypeID: 25 },
{ name: 'img', dataTypeID: 25 } ] }
game.hbs - 再次跟随我的教授,我放置了 {{#each rows}} 标签和 {{/each}} 来封装从 index.js 中返回的数据,但无论出于何种原因,两者之间的代码{{each}} 标签根本不显示。
<script src="/jquery-2.2.3.js"></script>
<script>
console.log("Loaded script");
$(document).ready(function() {
//Verify user inputs on client side first
$("#romaji").change(function() {
console.log("Something changed!");
if(!isValid()) {
$("#error").html("Fix inputs!");
}
else
{
$("#error").html("");
}
});
});
//If input contains anything but lowercase characters, error
function isValid() {
console.log("isValid() called!");
var rj = $("#romaji").val().search(/^[a-z]{1,3}$/);
return (rj != -1);
}
</script>
<!--Title-->
<div align="center">
<h1>{{title}}</h1>
</div>
<!--Display Current Score, Difficulty, and current picture-->
<div align="center">
<h2> Score: {{currScore}}/46 </h2>
<h2> Difficulty: {{diff}} </h2>
{{#each rows}}
<h3> Char: {{name}} </h3>
<img src="{{img}}">
{{/each}}
</div>
<!--Form to submit answers-->
<div align="center">
<form>
<input type="text" name="input" id="romaji">
<input type="submit" value="submit" id="userInput">
</form>
<p id="error"> </p>
</div>
有没有办法随机查询数据库,然后从查询中返回数据以供我的车把文件使用?
【问题讨论】:
标签: javascript node.js postgresql express handlebars.js