Каждый раз, когда я делаю PUT с клиента, на сервер приходит объект со строкой в поле _id, я и занимаюсь его конвертацией в ObjectId в ручную. Мне кажется это глуповато.
Как правильно обращаться с полем _id, которое на клиенте выглядит строкой, а на сервере объектом ObjectId?
Я использую node.js+express.js и не использую ORM, только нативный драйвер на js, официальный.
В базе должен появиться такой объект
{
"_id" : ObjectId("5540ed124022ad9409092f71"),
"parameters_id" : [
ObjectId("554006c8a2fa57fc0dd7e47f"),
ObjectId("55400b2aa2fa57fc0dd7e480")
],
"name" : "Название"
}
С клиента приходит это
{
"parameters_id" : [
"554006c8a2fa57fc0dd7e47f",
"55400b2aa2fa57fc0dd7e480"
],
"name" : "Название"
}
Дальше такой кусочек говнокода подшаманивает строку в ObjectId
....
post: function (req, res) { //или пут не важно
var item = req.body;
if (item.parameters_id) {
for (var i = 0; i < item.parameters_id.length; i++) {
item.parameters_id[i] = ObjectId(item.parameters_id[i]);
}
}
//тут дальше инсерт в базу