Appearance
NodeJS
2
NodeJS #
- JS auf der Console
- ... mit Package Management
npm
,yarn
- Alternative zu
python
- Weit verbreiteter HTTP Server
expressjs
08.11.2022
NodeJS
4
Beispiel package.json
#
json
{
"name": "03-files",
"version": "1.0.0",
"scripts": {
"start": "node src/index.js"
},
"main": "index.js",
"type": "module",
"license": "MIT"
}
08.11.2022
NodeJS
5
Node Modules Folder #
- Folder
node_modules
- Libraries werden nach
yarn
odernpm install
hier abgelegt - Binaries, die eingebunden werden
- immber bei git Projekten mit
.gitignore
ignorieren- ... da die dependencies immer mit
yarn
von Hand nachinstalliert werden können.
- ... da die dependencies immer mit
08.11.2022
NodeJS
File schreiben
6
js
import fs from 'fs';
const commands = [
{
name: 'ls',
desc: 'lists Files'
},
{
name: 'rm',
desc: 'deletes Files'
},
{
name: 'cd',
desc: 'changes dir'
}
];
fs.writeFileSync('./commands.json', JSON.stringify(commands));
- starten mit
yarn start
08.11.2022
NodeJS
Architektur von Webapplikationen
7
08.11.2022
NodeJS
8
Web Server Frameworks #
- Java
Spring
Quarkus
- JS
expressjs
- Python
Django
flask
- Rust, .Net, Ruby, PHP, perl, ...
08.11.2022
NodeJS
NodeJS Webserver mit express
9
js
import express from 'express';
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send({
name: 'ls',
desc: 'lists files in cwd'
});
});
app.listen(port, () => {
console.log(`Linux Commands available on ${port}`);
});
08.11.2022
NodeJS
10
NodeJS Projekt #
- Libraries können mit
npm install
resp.yarn add
einem Projekt hinzugefügt werden package.json
beschreibt Abhängigkeiten und Commands- ... JS Module support mit
type: 'module'
. - Builtin support für
files
,os
,http
,compression
, ... - Raspberry Pi: https://www.w3schools.com/nodejs/nodejs_raspberrypi_gpio_intro.asp
08.11.2022
NodeJS
11
GET Requests mit Request Parmas #
http://localhost:3000/echo?command=ls
.
js
app.get('/echo', (req, res) => {
const command = req.query.command ?? '';
res.send({
command
});
});
08.11.2022
NodeJS
12
POST Data #
js
app.use(express.json());
const commands = [];
app.post('/command', (req, res) => {
const { body } = req;
commands.push(body);
res.send({
status: 'ok'
});
});
08.11.2022