1

现在用 Sequelize for Node.JS 磕磕绊绊了几个小时。我没有这样的运气使用它来建立关联(我必须在有限的时间内拆开我的大部分架构才能这样做)。对于我的应用程序,只有几个关联(主要与博客相关)。

在我的一个博客 API 调用中(这是针对特定博客 ID):

exports.single = function (req, res, next) {
db.Models.blog.find({
    where: res.locals.where
})
.success(function (blog) {
    getAuthors(blog.BLOG_ID, function (authors) {
        blog.AUTHORS = authors;
        res.locals.data = blog;
        next();
    });
})
.error(function (err) {
    res.locals.error = err;
    next();
});

}

我正在调用 getAuthors(blogId) 来获取 Author <-> Blog 链接表中的所有作者:

function getAuthors (blogId, fn) {
db.Models.author.findAll({
    where: { BLOG_ID: blogId }
})
.success(function (authors) {
    fn(authors);
})
.error (function (err) {
    fn([]);
});

}

大多数情况下,它都有效。我正在取回正确的数据,但我正在尝试将其与原始博客数据合并。最好作为财产。

4

1 回答 1

1

在转储从第二个查询返回的作者对象的内容后,我了解到从 Sequelize 对象中提取数据时使用的属性

model.attritubes[];

是一个字符串数组,其中列出了将从 Sequelize 对象输出的数据属性。所以在我的行之前:

blog.AUTHORS = authors;

我做了:

blog.attributes.splice(5, 0, 'AUTHORS');

我不是一个聪明人。

于 2012-12-10T06:31:46.833 回答