2017-03-14 5 views
-1

Nach meinem Verständnis werden die Service-Objekte, die wir registrieren, nur von kinvey-Sammlungen aufgerufen. Gibt es eine Möglichkeit, das lokal zu testen?Wie können wir kinvey-flex-sdk's lokal testen?

Ich habe den folgenden Code geschrieben.

var sdk = erfordern ('kinvey-flex-sdk');

const PORT = 8080;

sdk.service ({host: localhost, Port: PORT}, Funktion (err, flex) {

const data = flex.data; 

function authentication(request, complete, modules) { 
     console.log("Inside..."); 
     complete().setBody("Authenticated"); 
}; 

const widgets = data.serviceObject('widgets'); 

widgets.onInsert(authentication); 

});

Und meine Zweifel sind Authentifizierungsfunktion für die POST-Anforderung nicht ausgelöst http://localhost:8080/widgets {} ..

Can u mir bitte helfen, dass bei der Lösung?

Vielen Dank im Voraus ..

Antwort

0

Sie den Service vor Ort von nur läuft „Knoten index.js“ ausführen können. Es wird einen Listener starten, mit dem Sie sich z. Briefträger. Jeder lokale Test erfordert einen "POST" für bestimmte Routen. Testing Routen sind hier dokumentiert: http://devcenter.kinvey.com/ios/guides/flex-services#installation

Siehe auch http://devcenter.kinvey.com/guides/flex-services#testing-locally für die notwendigen Header, die Sie auf jede Anforderung einstellen müssen den richtigen Kontext zu erhalten und die Erlaubnis

+0

danke für das commnet. Ich habe meinen Code zu der Frage hinzugefügt. Kannst du bitte einen Blick darauf werfen und hilf mir wenn möglich? –

+0

Was sind die spezifischen Header und Postbody Sie verwenden? Wenn ich den Code ausführe, erhalte ich die Protokollzeile "Inside". Der Code wird jedoch nicht abgeschlossen, da der Beendigungshandler nicht vollständig korrekt ist. Sie müssen immer mit vollständig enden. und abschließen. . In Ihrem Fall können Sie Folgendes tun: "complete.setBody ({einige json hier}). Ok(). Done()". Außerdem gibt man typischerweise js-objects (übersetzt in json) im setBody zurück, nicht nur eine Zeichenkette. –

+0

Ich verwende "Content-Type" als "application/json" und "x-auth-key" als "kinveyTest" in Postman-Kopfzeilen. Muss ich einen anderen Header hinzufügen, um lokal zu testen? Und ich treffe mit "http: // localhost: 8080 /: Widgets /" (POST-Methode) –

0

Sie müssen folgende Header weitergeben müssen:

Content-Type:application/json 
Authorization:Basic <basicAuth> 
X-Kinvey-App-Metadata:{ "_id" : "<kinveyAppId>", "appsecret" : "<kinveyAppSecret>", "mastersecret" : "<kinveyMasterSecret>", "baasUrl" : "<kinveyBaseURL>" } 
X-Kinvey-Original-Request-Headers:{ "x-kinvey-api-version" : "<KinveyApiVersion>", "authorization" : "Basic <basicAuth>", "x-kinvey-client-app-version" : "<KinveyClientAppVersion>"} 
X-Kinvey-Username:<username> 
X-Kinvey-User-Id:<userid> 

Wenn Sie mit Flex-Funktion arbeiten:

http://localhost:<port>/_flexFunctions/<flexFunctionName> 
+0

Kann ich ohne kinvey-Konfigurationen testen (lokal testen)? –

+0

Sie haben kinvey SDK installiert und über Kopfzeilen übergeben, ich teste auch lokal –

Verwandte Themen