2017-09-05 1 views
0

Ich versuche, das GeoJSON-Schema in node-simple-schema zu definieren, um in meiner Anwendung zu verwenden.Wie Array-Schema mit SimpleSchema wiederverwenden

Ich versuche, die Position, Linestring, Linering und Polygon-Arrays zu definieren, um sie später beim Definieren der Punkt, LineString, .. Geometrien zu verwenden.

Dies ist, was ich jetzt mache, und es funktioniert nicht.

const Position = new SimpleSchema({ 
    position: { 
    type: Array, 
    label: 'A single position. ...', 
    minCount: 2, 
    maxCount: 3, 
    }, 
    'position.$': { 
    type: Number, 
    label: 'A number representing...', 
    }, 
}); 

const Point = new SimpleSchema({ 
    type: { 
    type: String, 
    label: 'The type of the feature.', 
    allowedValues: ['Point'], 
    }, 
    coordinates: { 
    type: Position.pick('position'), 
    // this does not work either 
    // type: Position.getObjectSchema('position'), 
    label: 'A single position', 
    }, 
}); 

Wenn ich versuche, so zu validieren, erhalte ich einen Fehler.

const PointExample = { 
    type: 'Point', 
    coordinates: [180.0, 46.5, 100], 
}; 

Point.validate(PointExample); 

Antwort

0

Extrahierte Schemas stimmen mit Objekten mit Schlüsseln und Werten überein. Daher lieferte der folgende Schlüssel den Schlüssel "Position".

const PointExample = { 
    type: 'Point', 
    coordinates: { 
    position: [180.0, 46.5, 100] // This is what matches the 'Position' schema. 
    } 
}; 

Point.validate(PointExample); 
+0

Ja, mir ist bewusst, dass das Schema definiert ist und nicht das, was ich eigentlich will. Wenn Sie verstehen, was ich erreichen möchte, wissen Sie einen Weg, um das Schema zu bekommen, das ich will? – piptin

Verwandte Themen