2017-08-25 4 views
0

Ich verwende Azure Easy API für meinen App-Service. Ich experimentiere ein wenig und finde keine richtige Dokumentation für dieses Zeug.Azure Easy API - Dokumentation zu getTable ('tableName') kann nicht gefunden werden .. Einfügen

Wenn ich eine neue Easy API gemacht, die Kommentare an der Spitze, sagte

// Use "request.service" to access features of your mobile service, e.g.: // var tables = request.service.tables;

Also ging ich von dort um herauszufinden, kann ich jedem meiner Tabellen hinzufügen request.service.tables.getTable('tableName').insert({columnName: value}) mit

I erwartet .insert(), um ein Versprechen zurückzugeben, tut es aber nicht. Tatsächlich scheint es überhaupt nichts zurückzugeben. Aber ich könnte mir vorstellen, dass es asynchron ist.

Und da es kein Versprechen zurückgibt, war meine nächste Wette, dass es einen Rückruf erfordert, aber als ich versuchte .insert({columnName: value}, function(r){response.send(r.toString()}), die gesamte API nur fehlgeschlagen, überhaupt zu arbeiten.

Wie soll ich diese .insert-Funktion verwenden?

Und wo finde ich die Dokumentation, um diese Informationen selbst zu erfahren? Das Googeln bringt mich nirgendwohin.

+0

Die Antwort unten enthält '.then ', was impliziert, dass dies ein Versprechen zurückgibt. Wenn Sie Ihren Code testen, was wird zurückgegeben? Ihr vorhandener Code scheint keinen Code zu enthalten, um das Versprechen trotzdem aufzunehmen (obwohl ich kein JS-Experte bin). Wenn Sie versucht haben, einen Rückruf zu verwenden, welchen Fehler haben Sie erhalten? –

+0

Die folgende Antwort enthält '.then ', aber es ruft verschiedene Funktionen auf. Ich benutzte 'request.service.tables.getTable()', während er 'request.azureMobile.tables()' verwendete. Als ich den Code ausprobierte, hatte ich ganz natürlich ein '.then()' nach meinem 'insert', und in den Logs stand etwas wie' .dann existiert nicht auf nicht definiert' - offensichtlich nicht wörtlich, so etwas . Ich konnte feststellen, dass '.insert()' in der Tat undefined oder null oder so etwas zurückgibt. – TKoL

+0

Einfach sagen .... komplette Code-Beispiele und vollständige Fehlermeldungen machen diese Dinge einfacher zu lösen. d. h. eine vollständige Repro. (Obwohl ich wahrscheinlich nicht selbst das lösen werde, könnte jemand anderes) –

Antwort

1

Hier ist ein code sample, den Sie in Ihrer Easy API zum Einfügen eines Datensatzes in die Tabelle verwenden können.

module.exports = { 
    "get": function (req, res, next) { 

     req.azureMobile.tables('tableName') 
      .insert({columnName: 'value'}) 
      .then(() => res.status(201).send('Success!')) 
      .catch(next); 
    } 
} 

Die Datei app.js hätte den folgenden Inhalt.

// ---------------------------------------------------------------------------- 
// Copyright (c) 2015 Microsoft Corporation. All rights reserved. 
// ---------------------------------------------------------------------------- 

// This is a base-level Azure Mobile App SDK. 
var express = require('express'), 
    azureMobileApps = require('azure-mobile-apps'); 

// Set up a standard Express app 
var app = express(); 

// If you are producing a combined Web + Mobile app, then you should handle 
// anything like logging, registering middleware, etc. here 

// Configuration of the Azure Mobile Apps can be done via an object, the 
// environment or an auxiliary file. For more information, see 
// http://azure.github.io/azure-mobile-apps-node/global.html#configuration 
var mobileApp = azureMobileApps({ 
    // Explicitly enable the Azure Mobile Apps home page 
    homePage: true, 
    // Explicitly enable swagger support. UI support is enabled by 
    // installing the swagger-ui npm module. 
    swagger: true 
}); 

// Import the files from the tables directory to configure the /tables endpoint 
mobileApp.tables.import('./tables'); 

// Import the files from the api directory to configure the /api endpoint 
mobileApp.api.import('./api'); 

// Initialize the database before listening for incoming requests 
// The tables.initialize() method does the initialization asynchronously 
// and returns a Promise. 
mobileApp.tables.initialize() 
    .then(function() { 
     app.use(mobileApp); // Register the Azure Mobile Apps middleware 
     app.listen(process.env.PORT || 3000); // Listen for requests 
    }); 
+0

Danke, ich werde das sehr bald versuchen und deine Antwort als richtig markieren, wenn ich es zur Arbeit bekomme. – TKoL

+0

Hmm. Hat nicht funktioniert. Vielleicht, weil ich diesen App-Service auf einer älteren Version von Azure gemacht habe. Ich habe meine app.js Datei überprüft und es gibt keine 'require ('azure-mobile-apps');', nur 'require ('azure-mobile-services');' Das ist in Ordnung, ich habe meine API über SQL arbeiten Wie auch immer, denke, dass das gut genug sein muss. Vielen Dank. [Bearbeiten] sieht aus wie azure-mobile-services ist veraltet, aber ich bin mir nicht sicher, wie machbar eine "Migration" ist. Hrm ... – TKoL

+0

Bitte nicht als korrekt markieren, wenn es nicht funktioniert! –

Verwandte Themen