使用 npm orm 接收数据库的所有元素

Receive all elements of database with npm orm

我使用 npm orm 并且我已经可以创建新的数据库条目。现在我想接收所有条目,但它没有按预期工作。我使用 .all 函数来接收条目,但它不起作用。

应用程序

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:fdB2bJ6p@localhost/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 时,我只是收到 undefined。输出人数:

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

而且我没有收到任何错误。你们知道为什么这不起作用吗?

尝试

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);
    });
});