我正在开发一个Nodejs应用程序,我的数据库是Postgres,我使用Sequelize作为我的ORM,因为它对迁移有很好的支持。
我正在寻找基于我定义的模式的良好REST API生成器。我面临两个主要障碍,即发电机在创建关联API路线和缺乏ACL支持方面做得不好。 在关联方面,我的架构有多个关联级别,例如..
Student.hasMany(Courses);
Courses.hasMany(Subjects);
理想情况下,生成的REST API应该类似于
/student/:student_id/course/:course_id/subject/:subjectId
我找到了一些正在执行此操作的项目,但不完整。
是否有支持此功能的模块?
答案 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)
我在上一个项目中使用了大结局,对此感到非常满意。