This post is also available in: English

El estándar de JavaScript está en constante evolución y, a veces, puede ser difícil tener características que coincidan con lo que se admite en un marco. Otro problema que se puede ejecutar en es tener un viejo tutorial que puede no coincidir con lo que está en el filo. El otro día le mostraba a mi hermano cómo configurar Express JS y vi que no utilizaba ES6. Así es como lo acompañé a través de él.

Asumiendo que ya tiene el node.js instalado, cree un nuevo directorio llamado myapp

mkdir myapp  && cd myapp

A continuación, cree su archivo de paquete de la NMP y asegúrese de establecer el punto de entrada a app.js

npm init
npm install express body-parser --save

Por defecto, estarás usando ES5 y se requerirá que uses require (ja ja) para tirar de módulos. A medida que avanzamos con ES6 y más allá, es realmente mejor para nosotros empezar a utilizar las clases ES6, así como las instrucciones de importación y exportación. Para ello, necesitaremos Babel para interpretar nuestra sintaxis ES6.

Vamos a tirar en ‘babel-cli and babel preset es2015” como dependencias de dev, así como agregar el archivo .babelrc

npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
{
"presets": ["es2015"]
}

Creación del modelo para la salida JSON

Vamos a agregar analizador de cuerpo como una dependencia regular

Una vez que tengamos la configuración terminada, vamos a construir una simple API que devuelve JSON

Cree una carpeta de modelos con un archivo JS llamado User.

export default class User {
  constructor(name, username, email){
     this.name = name;
     this.username = username;
     this.email = email;
   }

   getUsername(){
     return this.username;
   }
   getName(){
     return this.name;
   }
}

 

A continuación, cree una carpeta Routes con un archivo de index.js.

import express from 'express';
let router = express.Router();
import User from '../models/user';
/* GET home page. */
router.get('/', (req, res, next) => {
   let languages = [
    {
     language: 'Spanish'
    },
    {
     language: "French"
    },
    {
     langauge: "German"
    }
];
res.json(languages);
});
router.get('/users', (req, res, next ) => {
let users = [
new User('James Coonce','jcoonce','none@none.com'),
new User('Bob Coonce','bcoonce','none@none.com'),
new User('Euri','euri','none@none.com'),
new User('Norman','jcoonce','none@none.com'),
];

res.json(users);
});

router.post('/user/create', (req, res) => {
   let user = new User(req.body.name, 
   req.body.username, req.body.email);
   res.json(user);
})

export default router;

 

Usted puede ver que importamos el expreso de nuestros módulos del node.js y fijamos nuestro ranurador a ser el método del ranurador en nuestra clase express importada.

También importamos la clase User y creamos varias instancias dentro de nuestro ‘/users’ y las devolvemos como JSON.

Sólo para probar el método post también tiramos de los parámetros del cuerpo y devolvemos un objeto de usuario como JSON

let user = new User(req.body.name, req.body.username, req.body.email);
res.json(user);

entonces finalmente exportamos nuestro Router.

Al volver, creamos nuestro archivo de app.js

import express from 'express';
import bodyParser from 'body-parser';
import router from './routes/index';
let app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use('/', router);

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
});

Importamos express, así como nuestro router y luego añadimos el analizador de cuerpo y el router para expresar y especificar qué puerto queremos ejecutar.

Para terminar las cosas, vamos a nuestro archivo package.json y escribimos nuestro script de node.js.

babel-node app.js --presets es2015

Esto dice ejecutar app.js con el node Babel usando el preset es2015. Ahora usted puede ir a Port localhost: 3000 y usted debe ser capaz de hacer que su aplicación devuelva JSON en las varias URLs.

Puedes encontrar un ejemplo completo del repositorio de github aquí.

Codebrains Newsletter

Get weekly dev news and tutorials.

Powered by ConvertKit

This post is also available in: English