Sequelize REST API生成器

时间:2014-09-12 05:34:51

标签: node.js postgresql rest orm sequelize.js

我正在开发一个Nodejs应用程序,我的数据库是Postgres,我使用Sequelize作为我的ORM,因为它对迁移有很好的支持。

我正在寻找基于我定义的模式的良好REST API生成器。我面临两个主要障碍,即发电机在创建关联API路线和缺乏ACL支持方面做得不好。 在关联方面,我的架构有多个关联级别,例如..

Student.hasMany(Courses);
Courses.hasMany(Subjects);

理想情况下,生成的REST API应该类似于

/student/:student_id/course/:course_id/subject/:subjectId

我找到了一些正在执行此操作的项目,但不完整。

是否有支持此功能的模块?

2 个答案:

答案 0 :(得分:3)

我建议restify设置和路由相当简单易于管理。

如下所示的事情会让你开始。

server.get( '/student/:student_id/course/:course_id/subject/:subjectId', function(req, res, next) {
    Subjects.find({
        where: {
            'id': req.params.subjectId,
            'courses.id': req.params.course_id,
            'student_id.id': req.params.student_id
        },
        include: [{
            model: Courses,
            include: [{
                model: Student
            }]
        }]
    }).success(function(results) {
        console.log(results);
    });
});

您还可以减少需要使用此类内容编写的路线数量。我个人不会推荐它,因为你为了打字而牺牲了清晰度和灵活性。

var models = {
    'subjects': Subjects,
    'courses': Courses,
    'students': Students
};

server.get( '/:model/:id', function(req, res, next) {
    models[req.params.model]
        .find(req.params.id)
        .success(function(results) {
            console.log(results);
        });
});

答案 1 :(得分:0)

我在上一个项目中使用了大结局,对此感到非常满意。

https://github.com/tommybananas/finale