2017-03-02 1 views
0

Ich habe einige Daten, die ich lokal speichern und dynamisch abrufen möchte, vielleicht in einer anderen Sitzung oder nachdem der Browser geschlossen wurde und alle Browserdaten gelöscht wurden.Kommunikation mit einem http-Server

Ich führe die Website mit http-server CLI-Befehl und navigieren Sie zu Localhost, um über den Browser darauf zuzugreifen.

Wie kann ich Daten an die Serverseite senden, damit die Serverseite die Daten als Datei speichert?

Ich habe versucht, eine Ajax Post-Anfrage zu machen, um zu sehen, ob etwas in der Konsole passiert, aber es gab nur 404 zurück und nichts kam in der Konsole auf.

Die docs erwähnen nichts über Post-Anfragen: https://www.npmjs.com/package/http-server

PS: Ich habe diese laufen mit http-Server, ist dies ein Offline-Projekt.

+0

Sie benötigen eine Datenbank (vielleicht einige NoSQL-Paket könnte tun, ich bin nicht vertraut genug, um spezifische Details zur Verfügung zu stellen) – Alex

+0

Hat Ihr httpserver eine Funktion zu akzeptieren, die Post-Anfrage und schreibe die Datei noch? Wenn nicht, müssen Sie es schreiben, bevor Sie den POST tatsächlich akzeptieren können, sonst weiß der Server nicht, was damit zu tun ist. – Shilly

+0

@Alex Kann ich es ohne eine Datenbank tun? Einfach eine Zeichenfolge senden und in einer Datei speichern? – shinzou

Antwort

4

Sie können dies nicht mit http-server allein tun, da http-server nur statischen Inhalt bereitstellen kann und nicht zum Ausführen von Code auf der Serverseite verwendet werden kann.

Sie müssen ein Backend selbst schreiben, eventuell mit einem Framework wie Express, Hapi, Restify, Loopback usw. und Ihre statischen Dateien, die Sie mit Ihrem neuen Backend benötigen, bereitstellen oder so wie Sie es jetzt tun Sie müssen wahrscheinlich CORS berücksichtigen, wenn Sie unterschiedliche Ports für das Speichern/Abrufen von Daten von Endpunkten und Ihren statischen Inhalt verwenden - es sei denn, Sie führen einen Reverse-Proxy aus, der alle auf demselben Hostnamen und -port erscheinen lässt.

Sie können das Dateisystem verwenden, um die Daten zu speichern, oder Sie können eine Datenbank verwenden - entweder eine eigenständige Datenbank wie Mongo oder Postgres oder eine eingebettete Datenbank wie SQLite oder Loki.

Für Beispiele, wie statische Inhalte in Ihrem eigenen Backend siehe dienen:

1

sollten Sie express für diese Art von Sachen verwenden. Sie können leicht Methoden erstellen, die bestimmte Anforderungen behandeln.

Hier ist ein exmaple, wie durch nur einige Daten zu senden

var express = require('express') 
var app = express() 

app.get('/', function (req, res) { 
    res.send('Hello World') 
}) 

app.listen(3000) 

ein bekommen Anfrage bearbeiten und Sie können die fs api von Knoten selbst verwenden, um Daten zu schreiben.

var fs = require('fs') 
fs.writeFile('message.txt', 'Hello Node.js', (err) => { 
    if (err) throw err; 
    console.log('It\'s saved!'); 
}); 

Hinweis: Das fs Beispiel verwendet Pfeilfunktionen. Sie können weitere Informationen finden here

Verwandte Themen