![](/img/trans.png)
[英]How to stop writing nesting code in node-mysql ( node.js, express, mysql )
[英]Node.js + Node-MySQL + Express 4 + Mustache
我目前正在嘗試使用Node.js,但遇到了一些困難。 我正在嘗試將查詢傳遞給Mustache。
//Load Express Framework
var express = require('express');
//Load Mustache Template Engine
var mustachex = require('mustachex');
//Load MySQL
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'nodeuser',
password : 'testpass',
database : 'node',
});
connection.connect(function(err) {
});
//Call express
var app = express();
//Set Global App Settings
app.engine('html', mustachex.express);
app.use(express.static(__dirname + '/public'));
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
//Call the layout
app.get('/', function(req, res) {
var sql = 'SELECT * FROM menu WHERE id = 1';
connection.query(sql, function(err, results) {
});
for (var i in results){
var sqlResult = results[i];
console.log(sqlResult['address'], sqlResult['text']);
}
res.render('index');
});
//app.get('/test', function(req, res) {
// res.render('test');
//});
//Create Server
var port = Number(process.env.PORT || 5000);
app.listen(port, function() {
console.log("Listening on " + port);
});
在這里,我試圖從MySQL加載查詢的數據。
<div id="menu-container">
<div id="menu">
<span class="text"><a href="{{address}}">{{text}}</a></span>
<span class="text"><a href="/">Home</a></span>
<span class="text"><a href="/services">Services</a></span>
<span class="text"><a href="/contact">Contact</a></span>
</div>
</div>
我兩天前才開始學習Node.js。 我能夠弄清楚如何在Moustache中使用partials,但是我無法弄清楚MySQL。 我已經在節點數據庫中創建了必要的表。
menu
-> ID (INT) -> 1
-> Address (Text) -> www.example.com
-> Text (Text) -> Test
我該如何解決這個問題?
很難找到好的Node.js手冊。
query()是異步的,因此您必須在query()回調內調用query()后移動代碼,如下所示:
app.get('/', function(req, res, next) {
var sql = 'SELECT * FROM menu WHERE id = 1';
connection.query(sql, function(err, results) {
if (err) return next(err);
for (var i = 0, len = results.length; i < len; ++i) {
var sqlResult = results[i];
console.log(sqlResult['address'], sqlResult['text']);
}
res.render('index', {
address: results[0].address,
text: results[0].text
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.