Я хотел бы отправить конструкторы через EJSON
через методы:
сервер. js
Meteor.methods({
'testConstructor' (doc) {
console.log(doc) // {}
}
})
клиент. js
Meteor.call({ type: String })
Я думал о добавлении типов через EJSON.addType
, но в настоящее время он поддерживает только экземпляры , а не конструкторы. Я попытался обернуть конструктор String внутри такого класса:
Meteor.startup(function () {
class StrWrap {
constructor (val) {
this.val = val
}
toJSONValue () {
return {
value: this.val
}
}
typeName () {
return String.name
}
}
EJSON.addType(String, function (json) {
return String
})
const str = EJSON.stringify({ type: String})
console.log(str) // {}
})
По-прежнему нет шансов. В проблеме , связанной с , было упомянуто, что E JSON поддерживает String
, Number
et c. но я думаю, что это было нацелено на экземпляры этих классов.
В настоящее время я работаю над этим, используя собственный JSON
заменитель для JSON.stringify
и преобразователь для JSON.parse
, но это добавляет полный уровень преобразования для каждого взаимодействия протокола DDP, и я хотел бы поддерживать конструкторы из коробки, чтобы я мог отправлять схемы для обнаружения служб.