2016-05-03 8 views
0

Ich versuche, json Daten statisch aus dem Dateisystem dienen, um eine API zu verspotten.Serving statische JSON Daten mit Fragezeichen im Dateinamen in expressjs

Ich habe Deployd in meinem Stack zuvor verwendet und konnte/users/names? Id = 123 von ./users/names?id=123/index.html bedienen, aber ich wollte diese Abhängigkeit entfernen und mich darauf verlassen ausdrücken wie folgt:

var express = require('express'), 
    cors = require('cors'), 
    app = express(); 

app.use(cors()); 
app.use(express.static('api')); 

app.listen(3000, function() { 
    console.log('API Mock Server listening on port 3000!'); 
}); 

Leider Express ist nicht die JSON-Datei dient, wenn ich es auf ./users/names?id=123/index.html zugreifen, versuchte ich auch, dass index.html Umbenennung: ./ Benutzer/Namen? id = 123 ohne Erfolg

Antwort

1

Sie sollten das '?' wenn Sie in Ihrem Browser darauf zugreifen.

versuchen so ./users/names%3Fid=123/index.html

File URI encoding rules See.

+0

Diese Art von Arbeiten, in denen ich jetzt auf die JSON-Datei zugreifen kann, funktioniert aber nicht, dass meine Mock-API nicht mehr auf dem gleichen Pfad wie die tatsächliche API ist ... jede Möglichkeit, Express zu erhalten, um es mit der ? in der URL? – fotoflo

+0

Ich denke, wenn Sie nicht auch Ihre physischen Dateipfade umbenennen, wird es schwierig sein, es seit dem "?" wird nicht wirklich als Teil einer Namensdatei empfohlen. Vielleicht sollten Sie Ihre API-Parameter über einen anderen Standard bedienen. Wenn Sie etwas wie/users/names/id/123 verwenden, würde das eine weitere Stufe der Komplexität in Bezug auf die Baumsuche bedeuten, ist aber machbar. – zoubida13

Verwandte Themen