Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:nodejs_server

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
prog:nodejs_server [2019/04/10 19:46]
gpipperr [NodeJS Server aufsetzen]
prog:nodejs_server [2019/05/28 16:39] (aktuell)
gpipperr [Quellen]
Zeile 1: Zeile 1:
 +===== NodeJS Server REST API - Erste Schritte und Erfahrungen ====
  
 +
 +**Aufgabe**: 
 +
 +Für das Sammeln von Daten von einzelnen IOT Device soll ein NodeJS Server als Proxy eingesetzt werden.
 +
 +Die Stammdatenverwaltung und Konfiguration erfolgt über Oracle APEX, das Speichern der Messdaten erfolgt in einer TimeSeries Datenbank.
 +
 +
 +Der NodeJS Server erhält die Daten von den Sensoren, schreibt im ersten Schritt in Backup Dateien und versendet die Daten an die entsprechende Datenbank.
 +
 +
 +Damit sind die Sensoren von der Datenhaltungsschicht abgekoppelt, die Datenbank kann gestoppt werden ohne das Daten verloren gehen.
 +
 +
 +
 +
 +----
 +
 +==== NodeJS Server aufsetzen ====
 +
 +
 +=== Vorbereitung ===
 +
 +Allgemein zu nodejs siehe auch [[prog:nodejs_oracledb_electron|Erste Erfahrungen mit Electron / NodeJS und der Anbindung an die Oracle Datenbank]]
 +
 +Der Prototyp läuft unter MS Windows, später unter auf Linux unter ARM.
 +
 +  * Download der NodeJS Sofware unter https://nodejs.org/en/
 +  * Starten und Installieren mit allen Optionen z.b. unter C:\entwicklung\nodejs
 +
 +
 +
 +Express Library installieren
 +
 +<code powershell>
 +PS C:\work> npm install --save express
 +npm WARN saveError ENOENT: no such file or directory, open 'C:\work\package.json'
 +npm notice created a lockfile as package-lock.json. You should commit this file.
 +npm WARN enoent ENOENT: no such file or directory, open 'C:\work\package.json'
 +npm WARN work No description
 +npm WARN work No repository field.
 +npm WARN work No README data
 +npm WARN work No license field.
 +
 ++ express@4.16.4
 +added 48 packages from 36 contributors and audited 121 packages in 6.753s
 +found 0 vulnerabilities
 +
 +</code>
 +
 +=== Das erste Hello World ===
 +
 +
 +Siehe => https://expressjs.com/en/starter/hello-world.html
 +
 +Quellcode von dort in eine daten "server.js" kopieren und mit "node .\server.js" starten, um zu testen ob die Software richtig installiert ist und alles gefunden wird.
 +
 +
 +==Problem: Error: Cannot find module 'express' ==
 +
 +<code powershell>
 +
 +PS C:\entwicklung\work\nodeJsonProxy> node .\server.js
 +internal/modules/cjs/loader.js:583
 +    throw err;
 +    ^
 +
 +Error: Cannot find module 'express'
 +    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
 +    
 +</code>
 +
 +<fc #008080>**Lösung:**</fc>
 +<code powershell>
 +Set-Item -Path ENV:NODE_PATH -value C:\entwicklung\nodejs\node_modules
 +node .\server.js
 +</code>
 +=)
 +
 +=== Eine Html Seite aus einem Template erstellen - EJS ===
 +
 +
 +
 +Seiten mit ejs bauen
 +
 +<code bash>
 +npm install ejs --save
 +</code>
 +
 +
 +
 +----
 +
 +==== Die Oracle Datenbank anbinden ====
 +
 +Mit " npm install oracledb" das NodeJS Modul installieren
 +
 +<code powershell>
 +
 + npm install oracledb
 +
 +> oracledb@3.1.2 install C:\entwicklung\work\nodeJsonProxy\IOTGateway\node_modules\oracledb
 +> node package/install.js
 +
 +oracledb ********************************************************************************
 +oracledb ** Node-oracledb 3.1.2 installed for Node.js 10.15.1 (win32, x64)
 +oracledb **
 +oracledb ** To use node-oracledb:
 +oracledb ** - Oracle Client libraries (64-bit) must be in your PATH environment variable
 +oracledb ** - To get libraries, install an Instant Client Basic or Basic Light package from
 +oracledb **   https://www.oracle.com/technetwork/topics/winx64soft-089540.html
 +oracledb ** - A Microsoft Visual Studio Redistributable suitable for your Oracle Client library version must be available
 +oracledb **   See https://oracle.github.io/node-oracledb/INSTALL.html for details
 +oracledb **
 +oracledb ** Installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
 +oracledb ********************************************************************************
 +
 ++ oracledb@3.1.2
 +added 1 package and audited 248 packages in 98.101s
 +found 1 low severity vulnerability
 +  run `npm audit fix` to fix them, or `npm audit` for details
 +  
 +  --------------
 +  
 +</code>
 +==== Quellen ====
 +
 +Einleitung zu NodeJS => https://bmu-verlag.de/blog-8-nodejs/
 +
 +NodeJS für ARM
 +  * https://thisdavej.com/beginners-guide-to-installing-node-js-on-a-raspberry-pi/
 +
 +
 +
 +Tutorials:
 +
 +  * https://codeburst.io/build-a-weather-website-in-30-minutes-with-node-js-express-openweather-a317f904897b
 +  * https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbd
 +  * https://www.airpair.com/javascript/node-js-tutorial
 +  * https://expressjs.com/en/resources/books-blogs.html
 +
 +
 +Doku:
 +
 +  * https://www.npmjs.com/package/rest-api-framework
"Autor: Gunther Pipperr"
prog/nodejs_server.txt · Zuletzt geändert: 2019/05/28 16:39 von gpipperr