2015-04-01 65 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