是否可以设置Sequelize模型,以便使用PostgreSQL(或PostGIS,在我的情况下)函数将实例写入数据库?
我的数据库利用了PostGIS,我希望得到" the_geom"作为纬度和经度的函数写成:
var Site = sequelize.define('site', {
the_geom: 'geometry(Point,4326)',
latitude: DataTypes.DECIMAL,
longitude: DataTypes.DECIMAL
});
the_geom的值通常是这样的:
ST_SetSRID(ST_MakePoint(-76.622,39.277),4326)
答案 0 :(得分:3)
我能够使用钩子实现我想要的结果:
var Site = sequelize.define('site', {
the_geom: 'geometry(Point,4326)',
latitude: DataTypes.DECIMAL,
longitude: DataTypes.DECIMAL
}, {
hooks: {
afterValidate: function (site, options) {
site.the_geom = sequelize.fn('ST_SetSRID', sequelize.fn('ST_MakePoint', site.longitude, site.latitude), '4326');
}
}
});