Tässä on NodeJs koodinpätkä vinkiksi niille, jotka haluavat suorittaa PHP-haastetta käyttäen javascriptiä. Koodi käyttää expressiä ja sen middlewarea body-parser.
Käyttääksesi nodea, sinun pitää ensin asentaa se ja NPM (Node Package Manager).
Asennettuasi noden, mene konsolilla haluamaasi kansioon (tai luo kansio), johon haluat tehdä serverin koodit ja aja komento npm init ja näpyttele alustus läpi enterillä.
Voit asentaa tarvittavat kirjastot alapuolella mainituilla komennoilla. Kannattaa huomioida, että kirjastot asennetaan sen hetkiseen node-projektiin, jossa olet. Esimerkiksi, jos konsolissa lukee C:/Users/<käyttäjänimi>/phphaaste, niin kirjastot asennetaan tuohon kyseiseen kansioon.
npm install express --save npm install body-parser --save
Aja komento type nul > index.js, joka luo tiedoston index.js, jonne kopioit alla olevan koodinpätkän.
const app = require('express')(); const bodyParser = require('body-parser'); const PORT = 3001; /** * Alla oleva koodinpätkä parsii POST-pyynnön * parametrit request-olion kenttään body. */ app.use(bodyParser.urlencoded({ extended: true })); /** * @param {Object} body - sisältää GET/POST-pyynnön parametrit * @return {Number / String} - tehtävän ratkaisu */ const algoritmi = body => { // Sijoita tänne algoritmisi const a = Number(body.a); const b = Number(body.b); return a + b; }; /** * Kuunnellaan myös domainin juureen tulevia GET-pyyntöjä, joten * algoritmin toimivuutta voi testata myös helposti selaimella * * Esimerkki: * www.example.com?a=3&b=5 */ app.get('/', (req, res) => { const answer = algoritmi(req.query); res.send(answer.toString()); }); app.post('/', (req, res) => { const answer = algoritmi(req.body); res.send(answer.toString()); }); app.listen(PORT, () => { console.log('app running on port ', PORT); });
Voit käynnistää serverin komennolla node index.js. Käynnistys komento on myös mahdollista luoda package.json -tiedostoon, mutta se ei ole tässä tapauksessa tarpeellinen.
NodeJs serverin saa helposti toimimaan verkossa esimerkiksi käyttämällä Repl.it sivustoa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.