2015-02-18 8 views
2

, поэтому у меня есть работа метеорита, и я хочу открыть API REST. я решил выбрать restivus, поскольку он казался немного более чистым и более гибким для меня.Конфигурация конечных точек метеоритов

поэтому мой основной код:

if (Meteor.isServer) { 
    Meteor.startup(function() { 

    // Sensors = new Meteor.Collection('sensor'); 

    Restivus.configure({ 
     useAuth: false, 
     prettyJson: false 
    }); 
    Restivus.addCollection("sensor", { 
     defaultOptions: {}, 
    }); 

    }); 
} 

и я могу запросить его в порядке использования:

$ curl -X GET http://localhost:3000/api/sensor 
{"status":"success","data":[{"_id":{"_str":"00000000236668afaf952dee"},"ts":1424246899,"temp":28,"humidity":33}]} 

хмм ... так «_id» я вручную ввести (вместо того, чтобы набор Монго это для меня) выглядит немного странно на выходе; но все в порядке, я думаю, это ObjectId(). Однако, когда я идти о с ГЭТ, он терпит неудачу:

$ curl -X GET http://localhost:3000/api/sensor/00000000236668afaf952dee 

{ «статус»: «потерпеть неудачу», «сообщение»: «Товар не найден»}

что я делаю неправильно?

+0

Также была допущена ошибка в документах, которые с тех пор были исправлены; поэтому объект, который вы объявили как 'defaultOptions: {}', на самом деле должен быть назван 'routeOptions', а не то, что это имеет значение здесь, поскольку вы на самом деле не задали никаких параметров. Просто хотел указать на это, чтобы он не укусил вас в другом месте. – kahmali

ответ

1

Похоже, что _id на самом деле является объектом {"_str":"0000....52dee"}, а не простой строкой "0000....52dee". Проблема, скорее всего, в коде, в котором вы сохраняете _id. Это должно выглядеть так: {"_id" : "rdSRTTz5RL5JjQy3G"}.

+0

Да, я удалил документ в монго и создал его прямо через REST api, и теперь все в порядке. Забавно, что я действительно создал doc в mongo, используя 'ObjectId()' - это не рекомендуется? – yee379

+0

Обычно я могу указать MongoDB на вставку. Иногда я использую библиотеку для генерации строки UUID. Примите, пожалуйста, ответ? –

Смежные вопросы