Wie kriege ich diese Restful api auf meinen apache webserver?
Hallo!
Ich habe eine Restful api mit node.js programmiert ich habe folgendes benutzt:
Express und sqlite3.
Nun möchte ich wissen wie genau ich diese API auf meinem apache webserver zum laufen bringen kann. Ich bin schon googeln gegangen und ich habe nur heraus gefunden, dass ich nodejs express und sqlite3 irgendwie auf meinem webserver zum laufen bringen muss wie das geht habe ich keine Ahnung, deswegen bin ich hier gelandet und hoffe sehr das mir jemand behilflich sein kann.
Schonmal danke im voraus
Wie greifst du auf den Server zu? Also hast du einen SSH-Zugang/Konsole oder nur FTP um Dateien hochzuladen? Windows/Linux?
Also ich benutze windows 11 und ich benutze apache webserver man kann ihn auch mit cmd verwalten und man kann ihm explore dateien rein schieben. er wird lokal von meinem pc gehoste
2 Antworten
Eine node.js Anwendung muss auch auf einem node-fähigen Webserver gestartet werden.
Apache kann nur PHP ausführen. (Es gibt zwar Versuche, node.js Server über PHP zu starten, aber empfehlenswert ist das nicht.)
Heroku oder Vercel bieten (in Maßen) kostenloses node.js Hosting an.
Wenn es nur um deinen lokalen Rechner und nicht um die Verfügbarkeit im Internet geht, kannst du einen node-Server einfach über die Command Line oder über einen entsprechenden Befehl in der package.json starten.
Solange es nicht im Internet erreichbar sein muss, reicht es, wenn du die API lokal auf deinem PC startest.
Darfst halt dann den PC nicht ausschalten 😁
ja aber wenn ich die api nicht auf einen webserver mache kann nur ich zugreifen und nicht die leute in meinem netzwerk
Nee, in deinem Netzwerk kann dann jeder mit der Netzwerk-internen IP deines Rechners und dem Port, den sich die App beim Starten selbst sucht, drauf zugreifen.
Beispiel: Du startest den Server mit
node backend/server.js
dann kommt in der Konsole sowas wie
Server listening on port 3000
Dann kann innerhalb deines Netzwerks jeder mit der IP deines Rechners auf die API zugreifen (z.B. 192.168.178.27, musst du in den Netzwerkeigenschaften auf deinem Rechner nachschauen).
Adresse wäre in dem Beispiel dann 192.168.178.27:3000
Wenn es ein reiner WebSpace ist, dann gar nicht, wenn der nicht dafür ausgelegt ist.
Wenn es ein Server ist, musst du mehr angaben machen, was das für ein Server ist
es ist ein windows webserver der lokal auf meinem pc gehostet wird aber er ist auch mit diesem link zugänglich: http://meineip:8080
mit meineip meine ich natürlich meine ip
es ist die version 2.4 von apache webservern und es ist kein reiner webspace sondern ein server
In dem Fall hostest du das über node und nicht über apache. https://nodejs.org/en
ja aber ich möchte node auf dem apache webserver installieren, den die api muss für alle leute in meinem netzwerk zugänglich sein und nicht nur für mich
Wie schon gesagt: Du hostest JavaScript mit NodeJS und nicht mit Apache. Ich kann mich jedes Mal wiederholen oder du akzeptierst es. Du brauchst ein JavaScript, welches hosten kann und dann startest du es mit NodeJS. Da du sagst, du hast bereits eine RestAPI und willst die nur noch hosten, gehe ich davon aus, dass sie funktioniert, sobald du sie mit Node startest
Ja das tut sie aber wie kann ich es schaffen, das diese API für alle leute in meinem Netzwerk zugänglich ist?
Port freigeben in deiner lokalen Firewall. Das ist alles. Dann kann der andere mit dem Port drauf. Da dein Apache bereits auf 80 lauscht, solltest du dafür einen anderen wählen
und wie will dann jemand auf die api zugreifen?
Website, App, Programm ... Weißt du überhaupt, was eine API / ReST API ist?
Ja das weiss ich api ist die Schnittstelle zwischen zwei anwendungen und ich bin mir nicht mehr sicher aber rest api ist eine api die mit http anforderungen kommuniziert wenn ich mich nicht irre.
also die api muss für alle in meinem netzwerk verfügbar sein