2016-05-19 13 views
1

Ich bin writting AWS Lambda-Funktion in NodeJS die Daten von WebAPI OData V4-Dienst (http://localhost/SomeService/ $ Metadaten) I-Datei generiert Metadaten lesen JaySvcUtil mit und verwiesen die resultierende Datei in Lambda-FunktionJayData mit WebAPI OData V4 gibt undefined zurück

Wenn die onReady-Methode aufgerufen wird, ist das Users-Objekt leider undefiniert sowie jeder andere von meiner API exportierte Typ.

Irgendeine Idee, was ich falsch mache?

Antwort

0

Es stellte sich heraus, dass generierter Code, der von Jaysvcutil erstellt wurde, nicht mit Nodejs funktioniert. Anstelle von .extend sollte .define wie im Dokument erläutert verwendet werden.

$data.Class.define('Project.User', $data.Entity, null, { 
    'UserID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true }, 
}); 

$data.Class.define('$Project.Types.Context', $data.EntityContext, null, { 
    Users: { type: $data.EntitySet, elementType: Project.User } 
}); 

Und Kontext Initialisierung Rückruf sollte wie folgt definiert werden:

jayContext = new $Project.Types.Context({ 
    name: 'oData', 
    oDataServiceHost: 'http://localhost/SomeService' 
}); 

jayContext.onReady(function (serviceContext) { 
    serviceContext.Users.forEach(function (user) { 
     console.log(user.UserID); 
    }); 

    context.done(null, 'Hello World'); 
});