Chtel jsem ten Node.js, protoze stejne bych se mel ten javascript pomalu zacit poradneji ucit, ale sorry jako, to se proste neda. Pokazde zapnu nejaky example a chce se mi blejt co je to za shit platformu. Funcke treba bere jako parametr fixni String "onError", chces se podivat jake jsou vlastne mozne jine parametry tohoto enumu, a nenajdes nic, ani po rozkliknuti v komentech, proste nic.
Treba dať JavaScriptu šancu, je to geniálny jazyk a platforma. Neveril by som, že také niečo niekedy napíšem.
Hej, natvrdo nastavený názov eventu vyzerá nedobre. Ako však bolo už spomenuté, netreba používať priamo Node http ale Express knižnicu. Nie náhodou si v Mozille zvolili Django a Express ako frameworky pre svoj začiatočnícky web developent tutoriál.
const express = require("express");
const path = require("path");
const app = express();
app.use('/', express.static(path.join(__dirname, 'public')));
app.set('views', path.resolve(__dirname, "views"));
app.set('view engine', 'ejs');
app.get("/today", (req, res) => {
let today = new Date();
res.render("show_date", {now: today});
});
app.use((req, res) => {
res.statusCode = 404;
res.end("404 - page not found");
});
app.listen(3000, () => {
console.log("Application started on port 3000");
})
V pár riadkoch kódu si nastavím posielanie statických stránok, template engine, jednu route cestu, a 404.
Tomuto sa môže vyrovnať jedine Python Flask. Porovnajme takýto prístup trebárs s klasickou Java webovou
aplikáciou, a jej WAR súbormi, WEB-INF adresármom, XML deskriptormi či anotáciami, zbytočne komplexnými servletmi... X zbytočne komplexných úkonov navyše.
Skutočná sila JavaScriptu sa skrýva vo funkcionálnom programovaní. Nasledujúci kód vytvorí niekoľko objektov
pomocou JSON notácie (porovnajte s komplikovanou tvorbou objektov v Jave alebo C#) a spracuje ich pomocou
funkcionálnej knižnice ramda. Čistá krása.
const R = require('ramda');
const moment = require('moment');
const users = [
{ name: 'John', city: 'London', born: '2001-04-01' },
{ name: 'Lenny', city: 'New York', born: '1997-12-11' },
{ name: 'Andrew', city: 'Boston', born: '1987-02-22' },
{ name: 'Peter', city: 'Prague', born: '1936-03-24' },
{ name: 'Anna', city: 'Bratislava', born: '1973-11-12' },
{ name: 'Albert', city: 'Bratislava', born: '1940-18-19' },
{ name: 'Adam', city: 'Trnava', born: '1983-12-01' },
{ name: 'Robert', city: 'Bratislava', born: '1935-05-15' },
{ name: 'Robert', city: 'Prague', born: '1998-03-14' }
];
let res1 = R.filter(R.where({ city: R.equals('Bratislava') }))(users);
console.log(res1);
let res2 = R.filter(R.where({
city: R.equals('Bratislava'),
name: R.startsWith('A')
}))(users);
console.log(res2);
let res3 = R.filter(R.where({
born: (dt) => getAge(dt) > 40}))(users);
console.log(res3);
function getAge(dt) {
return moment.duration(moment() - moment(dt)).years();
}