Para configurar pruebas unitarias en una aplicación Next.js con TypeScript, puedes usar Jest y React Testing Library. Aquí están los pasos para configurar tu proyecto: bashCopy codenpm install –save-dev jest @types/jest ts-jest @testing-library/react @testing-library/jest-dom @testing-library/user-event @testing-library/dom babel-jest javascriptCopy codemodule.exports = { roots: [‘<rootDir>’], testPathIgnorePatterns: [‘/node_modules/’, ‘/.next/’], setupFilesAfterEnv: [‘<rootDir>/setupTests.js’], transform: { ‘^.+\\.(js|jsx|ts|tsx)$’: ‘<rootDir>/node_modules/babel-jest’, }, moduleNameMapper: { ‘\\.(css|less|scss|sass)$’: ‘identity-obj-proxy’, }, }; javascriptCopy codemodule.exports = { presets: [‘next/babel’], }; javascriptCopy codeimport ‘@testing-library/jest-dom/extend-expect’; jsonCopy code{ «compilerOptions»: { … «types»: [«jest», «node»] } } jsonCopy code{ «scripts»: { … «test»: «jest» } } Ahora, puedes escribir pruebas para tus componentes: typescriptCopy codeimport React from ‘react’;… Continuar leyendo


El objetivo de este tutorial es utilizar passport para autenticar usuarios en una aplicación web utilizando MongoDB + Express + Node. Estructura del proyecto — models —- user.js — routes —- index.js — passport.js — views —- index.jade — server.js — package.json Instalamos las dependencias que vamos a utilizar con el comando npm install. Creamos un modelo user /models/user.js donde indicaremos que datos vamos a querer almacenar en la base de datos para nuestros usuarios: var mongoose = require(‘mongoose’); var Schema = mongoose.Schema; module.exports = mongoose.model(‘User’, new Schema({ name: String, provider: String, provider_id: {type: String, unique: true}, createdAt: {type: Date, default: Date.now} })); Configuramos… Continuar leyendo


La autenticación es una de las grandes partes de cada aplicación y la seguridad es siempre algo que está cambiando y evolucionando. En la actualidad, una de las formas más utilizada para añadir seguridad a un API es utilizando JSON Web Tokens. El objetivo de este tutorial es implementar la autenticación por token para una aplicación web basada en: MongoDB + Express + Node. Antes de empezar con este tutorial te recomiendo que primeramente empieces con este: Tutorial: Crear API RESTful utilizando Node.js + Express.js + MongoDB Estructura del proyecto —- models/ ——– user.js – config.js – package.json – server.js – middleware.js -… Continuar leyendo


El objetivo de este tutorial es empezar a desarrollar profesionalmente utilizando el Stack MEAN: MongoDB + Express + Angular + Node. Vamos a crear una SPA (Single Page Aplication) con Angular, utilizaremos un API REST (Express + Node) con MongoDB como base de datos. Estructura del proyecto MeanApp — app // Backend —- models —— client.js —- controllers —— clients.js —- routes.js — public // Frontend —- index.html —- main.js — server.js // Express Server — package.json Empezaremos por package.json para indicar que dependencias vamos a necesitar: { «name»: «nodejs-angular-apirest», «version»: «1.0.0», «description»: «MEAN stack», «main»: «server.js», «dependencies»: { «body-parser»: «~1.13.2»,… Continuar leyendo


El primer paso para implementar un proyecto moderno es la construcción de un API REST que podemos consumir desde una aplicación web o móvil. En el presente tutorial utilizaré las tecnologías Node.js y MongoDB como base de datos para crear un API RESTful. Como framework para Node.js, utilizaré Express.js (versión 4) con MongoDB. Una API RESTful es un conjunto de operaciones bien definidas que se aplican a todos los recursos de información: HTTP en sí define un conjunto pequeño de operaciones, las más importantes son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se equiparan a las operaciones CRUD en bases de datos… Continuar leyendo


Continuando con el anterior artículo, en ésta ocasión les quiero mostrar el servicio de archivos estáticos en Express. Para el servicio de archivos estáticos como, por ejemplo, imágenes, archivos CSS y archivos JavaScript, utilice la función de middleware incorporado express.static de Express. Pase el nombre del directorio que contiene los activos estáticos a la función de middleware express.static para empezar directamente el servicio de los archivos. Por ejemplo, utilice el siguiente código para el servicio de imágenes, archivos CSS y archivos JavaScript en un directorio denominado public: app.use(express.static(‘public’)); Ahora, puede cargar los archivos que hay en el directorio public: http://localhost:3000/images/kitten.jpg http://localhost:3000/css/style.css http://localhost:3000/js/app.js… Continuar leyendo


Continuando con el anterior artículo, en ésta ocasión les quiero mostrar el direccionamiento básico de Express.js El direccionamiento hace referencia a la determinación de cómo responde una aplicación a una solicitud de cliente en un determinado punto final, que es un URI (o una vía de acceso) y un método de solicitud HTTP específico (GET, POST, etc.). Cada ruta puede tener una o varias funciones de manejador, que se excluyen cuando se correlaciona la ruta. La definición de ruta tiene la siguiente estructura: app.METHOD(PATH, HANDLER) Donde: app es una instancia de express. METHOD es un método de solicitud HTTP. PATH es… Continuar leyendo


Continuando con el anterior artículo, en ésta ocasión les quiero mostrar la herramienta que genera aplicaciones, express, para crear rápidamente un esqueleto de aplicación. Instale express con el siguiente mandato: $ npm install express-generator -g Muestre las opciones de mandato con la opción -h: $ express -h Usage: express [options][dir] Options: -h, –help output usage information -V, –version output the version number -e, –ejs add ejs engine support (defaults to jade) –hbs add handlebars engine support -H, –hogan add hogan.js engine support -c, –css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css) –git add .gitignore -f, –force force on… Continuar leyendo


¿Qué es Express? Es una infraestructura web rápida, minimalista y flexible para Node.js   Características: Aplicaciones web: Express es una infraestructura de aplicaciones web Node.js mínima y flexible que proporciona un conjunto sólido de características para las aplicaciones web y móviles. API: Con miles de métodos de programa de utilidad HTTP y middleware a su disposición, la creación de una API sólida es rápida y sencilla.  Rendimiento: Express proporciona una delgada capa de características de aplicación web básicas, que no ocultan las características de Node.js que tanto ama y conoce. Instalación Suponiendo que ya ha instalado Node.js, cree un directorio para que contenga la… Continuar leyendo


El scope, un término que encontrarás nombrado hasta la saciedad en la literatura relacionada con este framework de Javascript. ¿Qué es exactamente el scope? ¿Qué podemos decir sobre él para completar lo visto hasta ahora en el Manual de AngularJS? Sobre todo ello vamos a hablar en este artículo. La traducción de scope es «ámbito», sin embargo, el término es tan habitual que solemos usar directamente la palabra en inglés. Pero creo que usando la traducción nos podemos enterar mejor qué es en realidad el scope: el «ámbito» de los datos donde estamos trabajando en las vistas. En Angular no… Continuar leyendo