我来自Ruby世界,开始学习Express js,Node / ExpressJs中是否存在Rails ActiveRecord Migrations类库?
答案 0 :(得分:2)
我认为你可以使用Sequelize,它真正受到ActiveRecord的启发。也许您还需要使用Migrat包,它看起来像一个非常好的迁移工具
答案 1 :(得分:2)
通过Google快速搜索,我可以尝试使用四种不同的软件包/库:
答案 2 :(得分:2)
我认为你应该使用Sequelize,语法很简单,曲线学习很快。以下是如何在sequelize中定义模型的相同示例:
const User = sequelize.define('user', {
username: { type: Sequelize.STRING, allowNull: false },
password: { type: Sequelize.STRING, allowNull: false },
admin: { type: Sequelize.BOOLEAN, defaultValue: false }
});
在您调用代码后,sync()
方法Sequelize会CREATE TABLE IF NOT EXISTS
所有模型添加id
(您也可以更改),created_at
和{{1} (时间戳)你可以这样打电话:
updated_at
您可以使用少量代码进行非常复杂的查询,并将它们与express.js混合以响应您的客户,例如:
sequelize.sync()
.then(() => User.create({
username: 'administrator',
password: 'yahoo',
admin: true
}))
.then(userCreated => {
console.log(userCreated.toJSON());
});
这会产生类似:User.findAll({
where: {
[Op.iLike] : { username: 'Jack%' },
admin: true
}
}).then(usersList => {
if (!usersList) {
response.status(404).json({ error: 'not found' });
return null;
}
for (var i = 0; i < usersList.length; i++) {
usersList[I].something = 42;
}
response.json(usersList);
return null;
});
;
答案 3 :(得分:2)
我是Ruby on Rails开发人员,我在Node.js上搜索类似的框架。
现在我正在使用带有Waterline的Sails.js,使用PostgreSQL和迁移库。
文件结构与Rails几乎相同。与ActiveRecord几乎相同。我对目前的设置非常满意,工作完美且速度极快。
我有500个功能测试。每个测试都有很多查询,运行10-20次,有很多更新,创建,查找查询。使用Rails和PG数据库,它们将在10分钟内运行。使用Sails和PG数据库,他们确实在2分钟内运行(或更多 - 我有这个设置)。使用Sails和MongoDB(我刚从pg迁移到mongo),相同的测试在12秒内完成!
我仍然拥有类似Rails的文件系统和Waterline,它类似于ActiveRecord。我已经转移到Redis的所有交易(这很难,但完成了工作)。