Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: NodeJs: PHP-haasteen suorittaminen käyttäen javascriptiä

AtskaFin [03.06.2020 00:20:41]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta