使用NodeJs和Sequelize将Polygon数据插入MySQL表

时间:2016-10-19 06:15:58

标签: node.js sequelize.js

我正在尝试在地图上插入通过用户选择获得的多边形数据(lat-longs)。

我的续集表字段是 -

"use strict";
    var Sequelize = require("sequelize");
    module.exports = function(sequelize, DataTypes) {
        var MapData = sequelize.define("MapData ", {
                mapDataId: {
                    type: DataTypes.INTEGER,
                    autoIncrement: true,
                    primaryKey : true
                },     
                mySelection: {
                    type: 'Polygon',
                    allowNull: true
                },       
                createdByUserId: {
                    type: DataTypes.INTEGER,
                    allowNull : false
                },
                createdDate: {
                    type: DataTypes.DATE,
                    allowNull : false
                },
                modifiedByUserId: {
                    type: DataTypes.INTEGER,
                    allowNull : false
                },
                modifiedDate: {
                    type: DataTypes.DATE,
                    allowNull : false
                },
            },
            {
                tableName:'MapData',
                timestamps:false
            });

        return MapData ;
    };

NodeJs服务器代码是

create:function(mapData, creatorId){

        mapData.createdDate = new Date();
        mapData.modifiedDate = new Date();
        mapData.createdByUserId = creatorId;
        mapData.modifiedByUserId = creatorId;
        mapData.mySelection =  { type: 'Polygon', coordinates: [
            [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
                [100.0, 1.0], [100.0, 0.0] ]
        ]};     
        MapData.create(mapData) }

这不会插入表中。我提到了sequelize文档,但发现它令人困惑。请帮忙!

1 个答案:

答案 0 :(得分:0)

自己没有这样做,但在阅读完文档后,你的mySelection类型错了。它应该是DataTypes.GEOMETRY。 MySQL和Postgres仅支持GEOMETRY类型和PostGIS模块。