2015-04-01 64 views
0

我使用npm orm,我已經可以創建新的數據庫條目。現在我想收到所有條目,但它不能按預期工作。我用.all函數來接收條目,但它不起作用。使用npm orm接收數據庫的所有元素

應用

var express = require('express'); 
var path = require('path') 
var app = express(); 
var bodyParser = require('body-parser'); 

var orm = require('orm'); 

var db = orm.connect('mysql://root:[email protected]/iDanGManagement', function(err, db) { 
    if (err) throw err; 
}); 

module.exports = db; 

var Person = db.define('person', { 
    id:  { type: 'serial', key: true }, 
    name: { type: 'text' }, 
    email: { type: 'text' } 
}); 

// views 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 


// join public dir 
app.use(express.static(path.join(__dirname, 'public'))); 

// parse stuff 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 

// routes 
app.get('/', function(req, res) { 
    Person.all(function(err, persons) { 
    if(err) return err; 
    console.log(persons, persons.name) 
    }); 
    res.render('index'); 
}); 

app.post('/add', function(req, res) { 
    var new_person = {}; 
    new_person.name = req.body.name; 
    new_person.email = req.body.email; 
    Person.create(new_person, function(err, results) { 
    if (err) throw err; 
    }); 
}); 

var server = app.listen(3000, function() { 

    var host = server.address().address; 
    var port = server.address().port; 

    console.log('Example app listening at http://%s:%s', host, port); 

}); 

當我打印persons.name,我只是收到不確定。人的輸出:

[ { id: [Getter/Setter], 
    name: [Getter/Setter], 
    email: [Getter/Setter] } ] 

另外我沒有收到任何錯誤。你們知道爲什麼這不起作用嗎?

+0

即返回一個數組,它看起來正確的我,有多少人,你有你的數據庫?嘗試'console.log(persons [0] .name)'。 – 2015-04-01 08:19:26

+0

@RichardMacarthy這給了我一個想要的結果。但我怎樣才能得到每一個條目?出於測試目的,我剛剛得到3個條目 – ZedsWhatSheSaid 2015-04-01 08:22:10

+0

您需要遍歷數組,我編輯了我的答案。 – 2015-04-01 08:25:37

回答

2

嘗試

Person.find({}, function(err, persons) { 
    if(err) return err; 
    console.log(persons, persons.length); 
}); 

甚至:

Person.find(function(err, persons) { 
    if(err) return err; 
    console.log(persons, persons.length); 
}); 

這是否對你的工作?

編輯*

遍歷人數:

Person.all(function(err, persons) { 
    persons.forEach(function(person){ 
     console.log(person); 
    }); 
}); 
+0

Iv'e編輯答案,錯誤和人員分別返回什麼? – 2015-04-01 08:15:04

+0

是的,它的作品。謝謝 :) – ZedsWhatSheSaid 2015-04-01 08:27:05