<?xml version="1.0" encoding="UTF-8"?>
<quiz>
  <question type="category">
    <category>
      <text>__Category Name__</text>
    </category>
  </question>
  <!-- Question entry 0 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué patrón de arquitectura software sigue el framework express?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué patrón de arquitectura software sigue el framework express?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[MVC]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[MVP]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[MVA]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[MVVM]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 1 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué librería de npm se encarga de generar el HTML dinámicamente a través de plantillas?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué librería de npm se encarga de generar el HTML dinámicamente a través de plantillas?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[sequelize]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[sqlite]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[ejs]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[express-generator]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 2 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Se ha declarado una variable title con valor “App” en un middleware, que se desea pasar con ese mismo nombre y valor a la vista index.ejs, situada en el directorio de vistas (views). ¿Con qué línea de código conseguiríamos esta funcionalidad?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Se ha declarado una variable title con valor “App” en un middleware, que se desea pasar con ese mismo nombre y valor a la vista index.ejs, situada en el directorio de vistas (views). ¿Con qué línea de código conseguiríamos esta funcionalidad?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[res.render(“views/index.ejs”, { title: title });]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[res.render(“index”, { title: title });]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[res.render(“index.ejs”, title);]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[res.render(“views/index.ejs”, title);]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 3 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Se quiere consultar, usando sequelize, toda la lista de usuarios (models.user) disponibles en la base de datos. ¿Con qué función lo conseguiríamos?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Se quiere consultar, usando sequelize, toda la lista de usuarios (models.user) disponibles en la base de datos. ¿Con qué función lo conseguiríamos?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[res.render(models.user)]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[userController(models.user)]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[models.user.findAll()]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[models.user.findByPk()]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 4 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Tenemos un modelo de usuarios llamado “user” cuya clave primaria es un atributo llamado “id” ¿Qué resultado se imprimiría por pantalla al ejecutar la siguiente instrucción?: models.user.findByPk(5).then(user=>{console.log(user);})]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Tenemos un modelo de usuarios llamado “user” cuya clave primaria es un atributo llamado “id” ¿Qué resultado se imprimiría por pantalla al ejecutar la siguiente instrucción?: models.user.findByPk(5).then(user=>{console.log(user);})]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Un único usuario con id igual a 5, si existe.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Un array con todos los usuarios que tienen id igual a 5, si los hay.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[No existe la función findByPk]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 5 -->
  <question type="truefalse">
    <name>
        <text><![CDATA[El siguiente fragmento de código EJS genera un documento HTML con un párrafo que contiene el número 4]]></text>
    </name>
    <questiontext>
        <text><![CDATA[El siguiente fragmento de código EJS genera un documento HTML con un párrafo que contiene el número 4]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[True]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[False]]></text>
    </answer>

  
    
  </question>

  <!-- Question entry 6 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué librería de npm podemos usar para que se reinicie solo un servidor web hecho con node.js cada vez que modifiquemos un fichero?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué librería de npm podemos usar para que se reinicie solo un servidor web hecho con node.js cada vez que modifiquemos un fichero?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[git]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[supervisor]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[heroku]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[sequelize-cli]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 7 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Cómo se lee el valor de una variable de entorno llamada USER desde un servidor web hecho con node.js?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Cómo se lee el valor de una variable de entorno llamada USER desde un servidor web hecho con node.js?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[.env[“USER”]]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[req.session.USER]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[require(“USER”)]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[process.env.USER]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 8 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[En un servidor express definimos una ruta para el siguiente patrón]]></text>
    </name>
    <questiontext>
        <text><![CDATA[En un servidor express definimos una ruta para el siguiente patrón]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[router.get]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[router.use]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[router.param]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[router.edit]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 9 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Con qué línea podríamos recoger el parámetro “token” de la siguiente URL? “http://localhost:3000/api/users?token=1234”]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Con qué línea podríamos recoger el parámetro “token” de la siguiente URL? “http://localhost:3000/api/users?token=1234”]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[req.params.token]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[req.query.token]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[req.body.token]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[res.render(“token”)]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[res.json.token]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[res.send.token]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 10 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué atributo de la etiqueta input HTML indica con qué alias se recogerá su valor en el servidor?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué atributo de la etiqueta input HTML indica con qué alias se recogerá su valor en el servidor?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[method]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[placeholder]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[id]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[name]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[type]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 11 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Tenemos un fichero “config.js” que exporta un objeto de configuración para poder usarlo en otros ficheros: <pre>module.exports = { n: 5, port: 3000, user: “admin”};</pre>]]></text>
    </name>
    <questiontext format="html">
        <text><![CDATA[Tenemos un fichero “config.js” que exporta un objeto de configuración para poder usarlo en otros ficheros: <pre>module.exports = { n: 5, port: 3000, user: “admin”};</pre>]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[const usuario = require(“./config”).user;]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[var usuario = require(“../config.js).get(“user”);]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[let usuario = require(“../config.js”).user;]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[let usuario = require(“./config.js”)[user];]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[usuario = “config”.user;]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 12 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Con qué sintaxis incluimos en una vista index.ejs otra vista _form.ejs situada en el mismo directorio?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Con qué sintaxis incluimos en una vista index.ejs otra vista _form.ejs situada en el mismo directorio?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[<%= “_form.ejs” &>]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[<% include _form.ejs %>]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[<%- include ../_form.ejs %>]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[res.render(“_form.ejs”)]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 13 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[En una base de datos relacional, ¿cómo se conoce a los atributos de las tablas que identifican de forma unívoca a una fila?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[En una base de datos relacional, ¿cómo se conoce a los atributos de las tablas que identifican de forma unívoca a una fila?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Migración]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Seed]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Clave primaria]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Columna]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Salt]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 14 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Cómo se denominan las funciones intermedias por las que pasan cada una de las peticiones HTTP que recibe un servidor express?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Cómo se denominan las funciones intermedias por las que pasan cada una de las peticiones HTTP que recibe un servidor express?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Controller]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Model]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Middleware]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Loader]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 15 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué código de error deberíamos envíar en nuestra respuesta HTTP cuando un usuario intenta acceder a un recurso para el cual no tiene permisos?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué código de error deberíamos envíar en nuestra respuesta HTTP cuando un usuario intenta acceder a un recurso para el cual no tiene permisos?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[404]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[500]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[403]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[200]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[304]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 16 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué librería npm se emplea para mostrar alertas de error/warning/info a los usuarios en la interfaz web?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué librería npm se emplea para mostrar alertas de error/warning/info a los usuarios en la interfaz web?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[ejs]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[express-flash]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[sequelize-cli]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[express-session]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[express-alert]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 17 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué código de respuesta HTTP se obtiene cuando pido un recurso que ya tengo cacheado y que no ha cambiado desde la última vez que lo pedí?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué código de respuesta HTTP se obtiene cuando pido un recurso que ya tengo cacheado y que no ha cambiado desde la última vez que lo pedí?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[404]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[403]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[304]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[500]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[200]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 18 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué código de respuesta HTTP se obtiene cuando pido un recurso que el servidor no es capaz de encontrar?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué código de respuesta HTTP se obtiene cuando pido un recurso que el servidor no es capaz de encontrar?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[404]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[403]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[304]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[500]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[200]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 19 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Para qué necesito la librería de npm method-override?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Para qué necesito la librería de npm method-override?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Para recoger los valores introducidos en un formulario]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Para poder usar la misma ruta con distintos métodos HTTP]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Para soportar los métodos PUT y DELETE en formularios HTML]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Para poder añadir el parámetro method=POST a la URL]]></text>
    </answer>
      <single>true</single>
  
    
  </question>


  <!-- Question entry 21 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué es un API REST?: ]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué es un API REST?: ]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Una interfaz por la que cliente y servidor interaccionan usando los métodos GET, POST, PUT y DELETE de HTTP. ]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Una librería que permite encapsular los métodos PUT y DELETE de HTTP en GET, ya que no son soportados por los navegadores.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Una interfaz de webservices basada en JSON que se transmite entre cliente y servidor usando el método POST de HTTP.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 22 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué método de un API REST se utiliza para LEER un recurso, por ejemplo http://localhost/users/pepe ?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué método de un API REST se utiliza para LEER un recurso, por ejemplo http://localhost/users/pepe ?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[GET]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[POST]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[PUT]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[DELETE]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 23 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué método de un API REST se utiliza para BORRAR un recurso, por ejemplo http://localhost/users/pepe ?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué método de un API REST se utiliza para BORRAR un recurso, por ejemplo http://localhost/users/pepe ?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[GET]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[POST]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[PUT]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[DELETE]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 24 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué método de un API REST se utiliza para ACTUALIZAR un recurso, por ejemplo http://localhost/users/pepe ?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué método de un API REST se utiliza para ACTUALIZAR un recurso, por ejemplo http://localhost/users/pepe ?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[GET]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[POST]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[PUT]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[DELETE]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 25 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué método de un API REST se utiliza para CREAR un recurso, por ejemplo sobre la colección http://localhost/users/ ?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué método de un API REST se utiliza para CREAR un recurso, por ejemplo sobre la colección http://localhost/users/ ?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[GET]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[POST]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[PUT]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[DELETE]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 26 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿En una arquitectura orientada a recursos, todo recurso del servidor se identifica por una ruta diferente?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿En una arquitectura orientada a recursos, todo recurso del servidor se identifica por una ruta diferente?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Falso]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Verdadero]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 27 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué hace el comando “npm install” ?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué hace el comando “npm install” ?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Instala todas las dependencias del proyecto que están definidas en el fichero package.json]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Instala todas las dependencias del proyecto que están definidas en el node_modules]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 28 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿En una aplicación web cómo implementaremos un estilo adaptable con media-queries?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿En una aplicación web cómo implementaremos un estilo adaptable con media-queries?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Utilizando el atributo media de la marca link. Así <link media=”max-width:480px” ...>]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Utilizando la etiqueta media. Así <media style=”max-width:480px ...>]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Utilizando una nueva hoja de estilos CSS que añadimos a nuestra página con la etiqueta meta. Así <meta href=”styles/mystyle.css”>]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 29 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué es Heroku ?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué es Heroku ?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Es una librería para hacer despliegues de aplicaciones web]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Es un sistema operativo en la nube que permite desplegar sencillamente con solo un comando Git]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Es un servicio de tipo PaaS (Platform as a Service) que permite instalar apps en la nube]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 30 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué son las cookies?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué son las cookies?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Es una base de datos que tiene el navegador para almacenar variables del usuario como su username, login, password, ...]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Son mensajes flash que se envían desde el cliente al servidor para mandar formularios HTTP.]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Son datos del servidor que se guardan en el navegador para mantener el estado de una sesión HTTP.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 31 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[En el fichero models/index.js tenemos al principio la siguiente sentencia]]></text>
    </name>
    <questiontext>
        <text><![CDATA[En el fichero models/index.js tenemos al principio la siguiente sentencia]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Sirve para definir la URL de la base de datos, que tomará el valor “process.env.DATABASE_URL” o “sqlite:quiz.sqlite” según usemos postgres o sqlite]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Sirve para definir la URL de la base de datos, así si está en una variable de entorno del sistema se quedará con ese valor y si no existe dicha variable de entorno toma el valor “sqlite:quiz.sqlite”]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Es una linea que tenemos que editar para sustituir en nuestra práctica process.env.DATABASE_URL por la URL (IP:puerto) de la base de datos postgres.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 32 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué son las migraciones de la base de datos?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué son las migraciones de la base de datos?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Copia de seguridad de los datos, para poder restaurarlos en Heroku]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Modificación incremental de la base de datos]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Traslado de los datos a otra base de datos]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 33 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿ Cuál de las relaciones entre tablas de una base de datos utiliza una tabla intermedia?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿ Cuál de las relaciones entre tablas de una base de datos utiliza una tabla intermedia?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[1 a 1]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[N a N]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[1 a N]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 34 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Para establecer las relaciones entre las tablas de una base de datos utilizo las siguientes sentencias:]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Para establecer las relaciones entre las tablas de una base de datos utilizo las siguientes sentencias:]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[1 a 1]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[N a N]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[1 a N]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 35 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Para establecer las relaciones entre las tablas de una base de datos utilizo las siguientes sentencias:]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Para establecer las relaciones entre las tablas de una base de datos utilizo las siguientes sentencias:]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[1 a 1]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[N a N]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[1 a N]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 36 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Para establecer las relaciones entre las tablas de una base de datos utilizo las siguientes sentencias:]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Para establecer las relaciones entre las tablas de una base de datos utilizo las siguientes sentencias:]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[1 a 1]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[N a N]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[1 a N]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 37 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Si creamos una promesa con la siguiente sentencia: <pre> p = new Promise( function(f1, f2) { ... } );</pre> ¿Cuando se invocará la función ‘f1’?]]></text>
    </name>
    <questiontext format="html">
        <text><![CDATA[Si creamos una promesa con la siguiente sentencia: <pre> p = new Promise( function(f1, f2) { ... } );</pre> ¿Cuando se invocará la función ‘f1’?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Nunca.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Cuando la promesa deje de estar pendiente.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Cuando la promesa sea rechazada.]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Cuando se resuelva la promesa.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 38 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿En qué estado se puede encontrar una Promesa?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿En qué estado se puede encontrar una Promesa?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Pendiente, cumplida o rechazada.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Pendiente o cumplida.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Cumplida o rechazada.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Indefinida, pendiente, cumplida o rechazada.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 39 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Cuando se resuelve una promesa se llama a su método:]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Cuando se resuelve una promesa se llama a su método:]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Then]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Catch]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Reject]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Resolve]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 40 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Cuando se rechaza una promesa se llama a su método:]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Cuando se rechaza una promesa se llama a su método:]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Then]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[Catch]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Reject]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Resolve]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 41 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Se desea, en un proyecto software controlado por git con dos ramas con nombres branch1 y branch2, integrar las dos ramas anteriores en su rama principal (con nombre master). Para ello se deciden ejecutar los siguientes comandos git desde el directorio raíz del proyecto: “git checkout master”, “git merge branch1” y “git merge branch2”. ¿Son estos comandos adecuados para lograr el fin descrito?  ]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Se desea, en un proyecto software controlado por git con dos ramas con nombres branch1 y branch2, integrar las dos ramas anteriores en su rama principal (con nombre master). Para ello se deciden ejecutar los siguientes comandos git desde el directorio raíz del proyecto: “git checkout master”, “git merge branch1” y “git merge branch2”. ¿Son estos comandos adecuados para lograr el fin descrito?  ]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Si]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[No]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 42 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Suponga que se quiere actualizar la rama master de un proyecto software controlado por git alojado en GitHub con un nuevo commit que incluya únicamente un fichero llamado “new_file.js”, situado en la raíz del proyecto. Suponga que se encuentra en la rama master, que no hay actualizaciones posteriores en GitHub y que existe un remote llamado origin que apunta al repositorio de GitHub. Antes de ejecutar los siguientes comandos de git: git commit -m "Nuevo fichero" y “git push origin master”, ¿qué comando debería ejecutar?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Suponga que se quiere actualizar la rama master de un proyecto software controlado por git alojado en GitHub con un nuevo commit que incluya únicamente un fichero llamado “new_file.js”, situado en la raíz del proyecto. Suponga que se encuentra en la rama master, que no hay actualizaciones posteriores en GitHub y que existe un remote llamado origin que apunta al repositorio de GitHub. Antes de ejecutar los siguientes comandos de git: git commit -m "Nuevo fichero" y “git push origin master”, ¿qué comando debería ejecutar?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[git add new_file.js]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[git checkout master]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[git merge master]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[git push]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 43 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Indique el comando que debe ejecutarse en un ordenador con sistema operativo Ubuntu con Node.js y npm para instalar todos los paquetes necesarios para la ejecución de una aplicación Node.js:]]></text>
    </name>
    <questiontext>
        <text><![CDATA[Indique el comando que debe ejecutarse en un ordenador con sistema operativo Ubuntu con Node.js y npm para instalar todos los paquetes necesarios para la ejecución de una aplicación Node.js:]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[npm init]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[git clone <APP_URL>]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[npm install]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[npm update]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 44 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Qué métodos proporciona el módulo ‘events’ de Node.js para gestionar eventos?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Qué métodos proporciona el módulo ‘events’ de Node.js para gestionar eventos?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[send, await y receive]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[resolve y reject]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[dispatch, register y unregister]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[emit y on]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 45 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[La siguiente regla CSS: <pre>#content div.last { color: purple; }</pre>, ¿a qué elementos del árbol DOM afecta?]]></text>
    </name>
    <questiontext format="html">
        <text><![CDATA[La siguiente regla CSS: <pre>#content div.last { color: purple; }</pre>, ¿a qué elementos del árbol DOM afecta?]]></text>
    </questiontext>
    
    <answer fraction="0">
        <text><![CDATA[Al último <div> que se encuentre dentro de un elemento con la clase “content”.]]></text>
    </answer>
    <answer fraction="100">
        <text><![CDATA[A todos los <div> con clase “last” que se encuentren contenidos dentro de un elemento con el identificador “content”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Al primer <div> con clase “last” que se encuentren dentro de un <div> con identificador “content”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[A ninguno, la regla está mal formulada.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 46 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[La siguiente regla CSS: <pre>div#first.blue { color: blue; }</pre>, ¿a qué elementos del árbol DOM afecta?]]></text>
    </name>
    <questiontext format="html">
        <text ><![CDATA[La siguiente regla CSS: <pre>div#first.blue { color: blue; }</pre>, ¿a qué elementos del árbol DOM afecta?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[A el <div> con identificador “first” y clase “blue”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[A el <div> con identificador “blue” y clase “first”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[A todos los elementos con la clase “blue” que se encuentren dentro de un <div> con identificador “first”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[A ninguno, la regla está mal formulada.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 47 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Dadas las siguientes reglas CSS: <pre>.blue { color: blue; }</pre> y <pre>.red { color: red; }</pre>, y el siguiente fragmento HTML: <pre> <div class=”red”><p class=”blue”>Hello World</p></div></pre>, responda de qué color se verá el texto “Hello World”:]]></text>
    </name>
    <questiontext format="html">
        <text><![CDATA[Dadas las siguientes reglas CSS: <pre>.blue { color: blue; }</pre> y <pre>.red { color: red; }</pre>, y el siguiente fragmento HTML: <pre> &lt;div class=”red”>&lt;p class=”blue”&gt;Hello World&lt;/p&gt;&lt;/div&gt;</pre>, responda de qué color se verá el texto “Hello World”:]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Azul.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Rojo.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Del color del <div> que contiene al <div> con clase “red”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Del color por defecto, ya que las reglas CSS no aplican al texto.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 48 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[Dadas las siguientes reglas CSS: <pre>.blue { color: blue; }</pre> y <pre>.red { color: red; }</pre>, y el siguiente fragmento HTML: <pre> &lt;div class=”red”&gt;&lt;p class=”blue”&gt;Hello World&lt;/p&gt;&lt;/div&gt;</pre>, responda de qué color se verá el texto “Hello World”:]]></text>
    </name>
    <questiontext format="html">
        <text><![CDATA[Dadas las siguientes reglas CSS: <pre>.blue { color: blue; }</pre> y <pre>.red { color: red; }</pre>, y el siguiente fragmento HTML: <pre> &lt;div class=”red”&gt;&lt;p class=”blue”&gt;Hello World&lt;/p&gt;&lt;/div&gt;</pre>. Responda de qué color se verá el texto “Hello World”:]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Azul.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Rojo.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Del color del <div> que contiene al <div> con clase “red”.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Del color por defecto, ya que las reglas CSS no aplican al texto.]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 49 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[A continuación se muestra la definición de dos funciones: <pre>let f = x => 3*x;</pre> y <pre>var f = function(x) { return 3*x; }</pre>. La primera función se ha definido utilizando JavaScript ES6 y la segunda utilizando la sintaxis de Javascript 5. ¿Son las funciones equivalentes?]]></text>
    </name>
    <questiontext format="html">
        <text><![CDATA[A continuación se muestra la definición de dos funciones: <pre>let f = x => 3*x;</pre> y <pre>var f = function(x) { return 3*x; }</pre>. La primera función se ha definido utilizando JavaScript ES6 y la segunda utilizando la sintaxis de Javascript 5. ¿Son las funciones equivalentes?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Si]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[No]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

  <!-- Question entry 50 -->
  <question type="multichoice">
    <name>
        <text><![CDATA[¿Para qué sirven las media queries?]]></text>
    </name>
    <questiontext>
        <text><![CDATA[¿Para qué sirven las media queries?]]></text>
    </questiontext>
    
    <answer fraction="100">
        <text><![CDATA[Para aplicar reglas CSS condicionales.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Para realizar consultas a la base de datos de una manera más eficiente desde un servidor web.]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Para redireccionar peticiones realizadas por clientes de características específicas (como la resolución de la pantalla o el ancho del viewport del navegador).]]></text>
    </answer>
    <answer fraction="0">
        <text><![CDATA[Para cargar recursos multimedia en el navegador web utilizando las propiedades nativas de los dispositivos siempre que sea posible. ]]></text>
    </answer>
      <single>true</single>
  
    
  </question>

</quiz>