У меня есть несколько микросервисов Netflix OSS (Eureka, Falcor sidecar), а также очень простая настройка Falcor, чтобы проверить функциональность. Я пытаюсь позвонить с клиентской стороны Falcor в внешний API, конечной точкой которого является http://localhost:8001/customer/customers
. В моем index.js
файле у меня есть:Не удалось получить маршрутизатор falcor для сравнения данных с помощью внешнего API через sidecar.
app.use('/model.json', falcorExpress.dataSourceRoute(function (req, res) {
return new falcorRouter([
{
route: "customers.length",
get: function (pathset) {
return http.get("http://localhost:8001/customer/customers")
.then(function (json) {
return {
path: pathset,
value: $atom(json.length)
};
});
}
}
]);
}));
Тогда в моей стороне клиента index.html
:
<html>
<head>
<script src="js/falcor.browser.js"></script>
<script>
var model = new falcor.Model({source: new falcor.HttpDataSource('/model.json') });
model.
get("customers.length").
then(function(response) {
console.log(response);
});
</script>
</head>
<body>
</body>
</html>
Если я ударил http://localhost:8001/customer/customers
API вручную, я получаю обратно объект JSON как это:
[
{
"customerId": 1,
"customerName": "Pierre"
},
{
"customerId": 2,
"customerName": "Paula"
}
]
Однако, мой console.log
выводит объект с ошибкой:
[{path: ["customers","length"],
value: {message: "undefined is not a function"}}]
Я не слишком заинтересован в этом этапе именно в том, какой формат объекта я верну, я просто хочу, чтобы с чем играть. Как изменить мой маршрутизатор, чтобы получить данные, которые я ожидаю?
Благодаря