2011-08-02 31 views
6

aracılığıyla Yeşim şablon altyapısına bir MySQL sorgusunun tüm içeriğinin alınması Basit bir yeni soru, nodejs ile başlıyorum ve genel olarak dilleri arka arkaya çevirmek için oldukça yeniyim.NodeJS ve Express

Express-js'deki varsayılan yeşim motorunu kullanarak bir veritabanından bir web sayfasına tek bir alanı yayınlamayı başardım.

/** 
* Module dependencies. 
*/ 

var express = require('express'); 

var app = module.exports = express.createServer(); 
var sqlResult; 
//MySql 
var mysqlClient = require('mysql').Client, 
    newClient = new mysqlClient(), 
    Database = 'test', 
    Table = 'test_table'; 

    newClient.user ='root'; 
    newClient.password='password'; 
    newClient.connect(console.log('connected to the database.')); 
    newClient.query('USE '+Database); 
    newClient.query(
    'SELECT * FROM '+Table, 
    function selectCb(err, results, fields) { 
    if (err) { 
     throw err; 
    } 
    sqlResult = results[0]; 
    console.log(sqlResult['text'], sqlResult['title']); 
    } 
); 
// Configuration 

app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(express.cookieParser()); 
    app.use(express.session({ secret: 'your secret here' })); 
    app.use(app.router); 
    app.use(express.static(__dirname + '/public')); 
}); 

app.configure('development', function(){ 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

app.configure('production', function(){ 
    app.use(express.errorHandler()); 
}); 

// Routes 

app.get('/', function(req, res){ 
    res.render('index', { 
    title: sqlResult['title'] 
    }); 
}); 

app.listen(3000); 
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 

Sorum ben theMySQL Query tarafından alınan tüm öğelerin listesini nasıl gösterebileceklerini, nedir?

Teşekkür ederim :)

cevap

1

Bunu beğendi. Eğer

for (var i in results){ 
     var sqlResult = results[i]; 
     console.log(sqlResult['text'], sqlResult['title']); 
    } 
+0

Son/Jade motoru. – Dave

7

sizin Jade içeride Ben generalhenry için

- for(var i = 0, len = results.length; i < len; i++) { 
    .result 
    .field1= results[i].field1 
    .field2= results[i].field2 
- } 
+0

Bu kod tam olarak çalışmıyor ama beni doğru yola koydu! – Dave

2

sayesinde üzerlerinden yineleme Sonra Jade

için
app.get('/', function(req, res){ 
    newClient.query('USE '+Database); 
    newClient.query('SELECT * FROM '+Table, function selectCb(err, results, fields) { 
    if (err) { 
     throw err; 
    } 
    res.render('index', { 
     title: results[0].title, 
     results: results 
    }); 
    } 
}); 

tüm sonuçları geçirin üzerinde döngü zorunda Sonuçlar bir dizidir ve bir yol buldum.

Temel olarak, mysql get işlevine veya sunucu js'deki sorgu işlevine başka şeyler eklemem gerekmemektedir.

Yeşim motoruyla ilgili her şey bu kod çalışır: get işlevinden (bu durumda sonuçlardan) geçtiğiniz değişkeni girin ve istediğiniz alanı seçerek tekrarlayın.

h1 Hello there! 
p Welcome to this try 
- for(var i = 0; i < results.length; i++) { 
- var textbody = results[i] 
    p= textbody['text'] 
- } 

Umut Even Better

4

:) ileride başkalarına yardımcı olabilecek

konsolunda çalışır, ancak sorun hala ön bu diziyi getiremiyor olmasıdır
ul 
    - each result in results 
    li= result.text 
İlgili konular