Comment créer un gestionnaire de musique avec Nuxt.js et Express.js
Gestion des ressources multimédias numériques telles que l'audio et la vidéo dans votre application peut être délicate en raison des considérations qui doivent être prises côté serveur (par exemple, la mise en réseau, le stockage et la nature asynchrone de la gestion des téléchargements de fichiers). Cependant, nous pouvons utiliser des bibliothèques comme Multer et Express.js pour simplifier notre flux de travail sur le backend tout en utilisant Nuxt.js (framework Vue) pour développer les interactions frontales.
Chaque fois qu'un client Web télécharge un fichier sur un serveur, il est généralement soumis via un formulaire et encodé en multipart / form-data
. Multer
est un middleware pour Express.js et Node.js qui facilite la gestion de ces soi-disant multipart / form-data
chaque fois que vos utilisateurs téléchargent des fichiers. Dans ce didacticiel, je vais vous expliquer comment créer une application de gestion de la musique en utilisant Express.js avec Multer pour télécharger de la musique et Nuxt.js (framework Vue) pour notre interface.
Prérequis
- Familiarité avec HTML, CSS, et JavaScript (ES6 +);
- Node.js, npm et MongoDB installés sur votre machine de développement;
- Code VS ou éditeur de code de votre choix;
- Connaissances de base d'Express.js.
Service principal
Commençons par créer un répertoire pour notre projet en naviguant dans le répertoire et en émettant npm init -y
sur votre terminal pour créer un fichier package.json qui gère toutes les dépendances de notre application.
mkdir serverside && cd serverside
npm init -y
Ensuite, installez multer
express
et les autres dépendances nécessaires pour Bootstrap une application Express.js.
npm install express multer nodemon mongoose cors morgan body-parser - -enregistrer
Ensuite, créez un fichier index.js :
touchez index.js
Ensuite, dans le fichier index.js nous initialiserons tous les modules, créerons une application Express.js et créerons un serveur pour la connexion aux navigateurs:
const express = require (" Express");
const PORT = process.env.PORT || 4000;
const morgan = require ("morgan");
const cors = require ("cors");
const bodyParser = require ("body-parser");
const mongoose = require ("mangouste");
const config = require ("./ config / db");
const app = express ();
// configurer la base de données et la mangouste
mongoose.set ("useCreateIndex", true);
mangouste
.connect (config.database, {useNewUrlParser: true})
.then (() => {
console.log ("La base de données est connectée");
})
.catch (err => {
console.log ({database_error: err});
});
// La configuration de db se termine ici
// enregistrement des cors
app.use (cors ());
// configurer l'analyseur de corps
app.use (bodyParser.urlencoded ({extended: false}));
app.use (bodyParser.json ());
// configurer l'analyseur de corps se termine ici
app.use (morgan ("dev")); // configire morgan
// définir la première route
app.get ("/", (req, res) => {
res.json ("Hola MEVN devs ... Assemble");
});
app.listen (PORT, () => {
console.log (`L'application fonctionne sur $ {PORT}`);
});
Nous introduisons tout d'abord Express.js dans le projet, puis définissons un port sur lequel notre application sera exécutée. Ensuite, nous introduisons les dépendances body-parser
morgan
mongoose
et cors
.
Nous enregistrons ensuite l'express par exemple dans une variable appelée app
. Nous pouvons utiliser l'instance app
pour configurer le middleware dans notre application, tout comme nous avons configuré le middleware cors
. Nous utilisons également l'instance app
pour configurer la route racine qui s'exécutera dans le port que nous avons défini.
Créons maintenant un dossier / config
pour notre base de données config
et multer
config:
mkdir config et cd config
toucher multer.js && toucher db.js
Ouvrez ensuite config / db.js et ajoutez le code suivant pour configurer notre base de données:
module.exports = {
base de données: "mongodb: // localhost: 27017 /",
secret: "mot de passe"
};
(Il s'agit en fait d'un objet qui contient l'URL de la base de données et le secret de la base de données.)
Exécution de nodemon
et navigation vers localhost: 4000
sur votre navigateur devrait vous donner ceci message:
"Hola MEVN devs ... Assemble"
En outre, voici à quoi devrait ressembler votre terminal:
Configuration du modèle, des itinéraires et des contrôleurs [19659010] Configurons une structure de fichiers en tapant ce qui suit: mkdir api && cd api
modèle mkdir && modèle cd && touch Music.js
cd ..
contrôleur mkdir && contrôleur cd && touch musicController.js
cd ..
itinéraires mkdir && itinéraires cd && touch music.js
mkdir api && cd api
modèle mkdir && modèle cd && touch Music.js
cd ..
contrôleur mkdir && contrôleur cd && touch musicController.js
cd ..
itinéraires mkdir && itinéraires cd && touch music.js
Dans notre terminal, nous utilisons mkdir
pour créer un nouveau répertoire, puis cd
pour nous déplacer dans un répertoire. Nous commençons donc par créer un répertoire appelé api
puis passons au répertoire api
.
La commande touch
est utilisée pour créer un nouveau fichier à l'intérieur d'un répertoire utilisant le terminal, tandis que la commande cd
est utilisée pour sortir d'un répertoire.
Passons maintenant à notre fichier api / model / Music.js pour créer un schéma musical. Un modèle est une classe avec laquelle nous construisons des documents. Dans ce cas, chaque document sera un morceau de musique avec des propriétés et des comportements tels que déclarés dans notre schéma:
let mongoose = require ("mongoose");
laissez musicSchema = mongoose.Schema ({
Titre: {
type: String,
requis: vrai
},
la musique: {
type: Objet,
requis: vrai
},
artiste: {
type: String,
requis: vrai
},
créé: {
type: Date,
par défaut: Date.now ()
}
});
laissez Music = mongoose.model ("Music", musicSchema);
module.exports = Musique;
Dirigeons-nous vers config / multer
pour configurer Multer:
let multer = require ("multer");
const path = require ("path");
const storage = multer.diskStorage ({
destination: (req, res, cb) => {
cb (null, "./uploads");
},
nom de fichier: (req, file, cb) => {
cb (null, new Date (). toISOString () + file.originalname);
}
});
const fileFilter = (req, file, cb) => {
si (
file.mimetype === "audio / mpeg" ||
file.mimetype === "audio / wave" ||
file.mimetype === "audio / wav" ||
file.mimetype === "audio / mp3"
) {
cb (nul, vrai);
} autre {
cb (null, false);
}
};
exports.upload = multer ({
stockage: stockage,
limites: {
fileSize: 1024 * 1024 * 5
},
fileFilter: fileFilter
});
Dans le fichier multer.js nous commençons par créer un dossier où tous les fichiers musicaux téléchargés seront téléchargés. Nous devons rendre ce fichier statique en le définissant dans le fichier index.js :
app.use ('/ uploads', express.static ('uploads'));
Après cela, nous écrivons un validateur simple qui vérifiera le fichier mimetype avant de le télécharger. Nous définissons ensuite l'instance multer
en ajoutant l'emplacement de stockage, les limites de chaque fichier et le validateur que nous avons créé.
Créer les itinéraires nécessaires
Créons maintenant nos itinéraires. Vous trouverez ci-dessous la liste des points de terminaison que nous allons créer.
HTTP POST / music | Ajouter une nouvelle musique |
HTTP GET / music | Obtenir toute la musique |
HTTP DELETE / music /: blogId | Supprimer une musique |
Commençons par créer l'itinéraire du blog. Rendez-vous sur api / routes / music.js et écrivez le code suivant:
const express = require ("express");
const router = express.Router ();
const musicController = require ("../ controller / musicController");
const upload = require ("../../ config / multer");
router.get ("/", musicController.getAllMusics);
router.post ("/", upload.upload.single ("music"), musicController.addNewMusic);
router.delete ("/: musicId", musicController.deleteMusic);
module.exports = routeur;
Note : Maintenant, chaque fois que nous faisons une demande de
à / musique
. l'itinéraire appelle la fonction getAllMusic
qui se trouve dans le fichier "controllers".
Passons à api / controllers / musicController
pour définir les contrôleurs. Nous commençons par écrire une fonction pour obtenir toute la musique dans notre base de données en utilisant la méthode mongoose db.collection.find
qui retournera tous les éléments de cette collection.
Après cela, nous écrivons une autre fonction qui va créer un morceau de nouvelle musique dans la base de données. Nous devons créer une nouvelle instance musicale à l'aide du mot-clé nouveau
puis définir l'objet musical. Après cela, nous allons utiliser la méthode mongoose save
pour ajouter de la nouvelle musique à la base de données.
Pour supprimer un morceau de musique, nous devons utiliser la mangouste remove
en passant simplement l'ID de musique comme paramètre dans l'instance remove
. Il en résulte que la mangouste examine la collection de musique qui a cet ID particulier, puis la retire de cette collection.
let mongoose = require ("mongoose");
const Music = require ("../ model / Music");
exports.getAllMusics = async (req, res) => {
essayez {
laisser la musique = attendre Music.find ();
res.status (200) .json (musique);
} catch (err) {
res.status (500) .json (err);
}
};
exports.addNewMusic = async (req, res) => {
essayez {
const music = new Music ({
titre: req.body.title,
artiste: req.body.artist,
musique: fichier de demande
});
laissez newMusic = attendre music.save ();
res.status (200) .json ({données: newMusic});
} catch (err) {
res.status (500) .json ({erreur: err});
}
};
exports.deleteMusic = async (req, res) => {
essayez {
const id = req.params.musicId;
laissez result = attendre Music.remove ({_id: id});
res.status (200) .json (résultat);
} catch (err) {
res.status (500) .json (err);
}
};
Enfin et surtout, pour tester les itinéraires, nous devons enregistrer les itinéraires musicaux dans notre fichier index.js :
const userRoutes = require ("./ api / user / route / utilisateur "); // apportez nos itinéraires utilisateurs
app.use ("/ user", userRoutes);
Test des points de terminaison
Pour tester nos points de terminaison, nous utiliserons POSTMAN.
Ajout de nouvelle musique
Pour tester la fonctionnalité Ajouter de la musique
définissez la méthode de la demande par en cliquant sur le menu déroulant des méthodes. Après cela, tapez l'URL du point de terminaison, puis cliquez sur l'onglet corps pour sélectionner la façon dont vous souhaitez envoyer vos données. (Dans notre cas, nous utiliserons la méthode des données de formulaire.)
Cliquez donc sur les données de formulaire et configurez votre clé de modèle. Au fur et à mesure que vous le configurez, donnez aux touches une certaine valeur, comme indiqué dans l'image ci-dessous:
Liste de toutes les musiques
Pour lister toutes les musiques dans notre base de données, nous devons taper l'URL du point final dans la section URL fournie. Après cela, cliquez sur le bouton «Envoyer» pour faire la demande.
Suppression de musique [19659043] Pour supprimer un morceau de musique, nous devons passer l'ID de musique
comme paramètre.
C'est tout!
Construire le frontend
Pour notre frontend, nous utiliserons un framework Vue: Nuxt.js.
«Nuxt est un framework progressif basé sur Vue.js pour créer un web moderne applications. Il est basé sur les bibliothèques officielles Vue.js (vue, vue-router et vuex) et sur de puissants outils de développement (webpack, Babel et PostCSS). »
Pour créer un nouveau Nuxt.js , ouvrez votre terminal et saisissez ce qui suit (avec musicapp
comme nom de l'application que nous allons créer):
$ npx create-nuxt-app musicapp
Pendant le processus d'installation, on nous posera des questions concernant la configuration du projet:
Nom du projet | musicapp |
description du projet | Une application Simple music manager |
Nom de l'auteur | |
Gestionnaire de packages | npm |
Framework d'interface utilisateur | Bootstrap vue |
framework d'interface utilisateur personnalisé | aucun |
Modules Nuxt | Axios, pwa (utilisez la barre d'espace de votre clavier pour |
Prettier | |
Framework de test | Aucun |
Mode de rendu | Universel (SSR) |
Outil de développement | Jsonconfig.json |
Après avoir tout sélectionné il faut attendre un peu pour la mise en place du projet. Une fois qu'il est prêt, accédez au dossier / project
et servez le projet comme suit:
cd musicapp && npm run dev
Ouvrez le projet dans l'éditeur de code de votre choix, puis ouvrez le projet dans le navigateur en accédant à localhost: 3000
.
Configuration d'Axios
Nous utiliserons axios
pour effectuer une demande HTTP auprès de notre serveur principal. Axios est déjà installé dans notre projet, il nous suffit donc de configurer baseURL
- sur notre serveur principal.
Pour ce faire, ouvrez le fichier nuxt.config.js dans le répertoire racine
et ajoutez le baseURL
dans l'objet axios
.
axios: {
baseURL: 'http: // localhost: 4000'
},
Création du gestionnaire de musique
Configuration de l'interface utilisateur
Commençons par nettoyer l'interface utilisateur. Ouvrez le fichier pages / index.vue et supprimez tout le code qu'il contient avec ce qui suit:
Bonjour
Après cela, vous ne devriez voir qu'un "Bonjour" dans le navigateur.
Dans le répertoire racine
créez un dossier / partials
. Dans le dossier / partials
créez un fichier navbar.vue et ajoutez le code suivant:
Remarque : Nous utiliserons le composant pour parcourir les pages de notre application. Ce sera simplement un composant simple composé de Bootstrap navbar
. Consultez la documentation officielle de Bootstrap pour plus d'informations.
Ensuite, définissons une disposition personnalisée pour l'application. Ouvrez le dossier / layouts
remplacez le code du fichier default.vue par le code ci-dessous.
Nous importons le navbar
dans cette disposition, ce qui signifie que toutes les pages de notre application auront ce composant navbar
. (Ce sera le composant sur lequel tous les autres composants de notre application seront montés.)
Après cela, vous devriez pouvoir voir ceci dans votre navigateur:
Maintenant, configurons l'interface utilisateur de notre gestionnaire. Pour ce faire, nous devons créer un dossier / manager
dans le dossier des composants, puis ajouter un fichier dans le dossier nommé manager.vue .
Dans ce fichier, ajoutez le code suivant:
Ajouter de la musique
#
Titre
Artiste
Date de création
] Action
1
Titre de la démonstration
Wisdom.vue
23/12/13
Remarque : Ce n'est qu'un simple modèle Bootstrap pour ajouter de la musique dans notre application. Le formulaire définira un modèle de table qui répertoriera tous les os de la musique que nous pouvons trouver dans notre base de données.
Après avoir défini ce composant, nous devons l'enregistrer dans le dossier / pages
pour lancer le routage.
Nuxt.js n'a pas de fichier 'router.js' comme Vue.js. Il utilise le dossier des pages pour le routage. Pour plus de détails, visitez le site Web Nuxt.js .
Pour enregistrer le composant, créez un dossier / manager
dans le dossier / pages
et créez un fichier index.vue . Ensuite, placez le code suivant dans le fichier:
C'est le composant qui s'affichera dans notre itinéraire pages
.
Après cela, rendez-vous sur votre navigateur et accédez à / manager
- vous devriez voir ceci :
Liste de toutes les musiques
Continuons en créant une fonction qui récupérera toute la musique. Cette fonction sera enregistrée dans le hook de cycle de vie créé, de sorte que chaque fois que le composant est créé, la fonction sera appelée.
Commençons par créer une variable dans l'instance vue
qui contiendra tout la musique:
allmusic = [];
musiqueChargement: faux,
Ensuite, définissez une fonction getAllMusics
et ajoutez le code suivant:
async getAllMusics () {
this.musicLoading = true
essayez {
laissez data = attendre ceci. $ axios. $ get ('/ music')
this.allmusic = data
this.musicLoading = false
} catch (err) {
this.musicLoading = false
swal ('Error', 'Error Fetting Musics', 'error')
}
}
Ensuite, enregistrez-vous dans le hook de cycle de vie créé:
created () {
this.getAllMusics ()
}
Sortie des données
Il est maintenant temps de sortir toutes les chansons de la table que nous avons créées précédemment:
#
Titre
Artiste
Date de création
Action
Chargement ...
{{index + 1}}
{{music.title}} [19659181] {{music.artist}}
{{music.created}}
Vous vous souvenez de cette table que nous avons créée plus tôt? Eh bien, nous devrons parcourir la réponse que nous recevons de notre serveur pour répertorier toute la musique reçue de la base de données.
Ajout de musique
Pour ajouter un nouveau morceau de musique, nous devons faire une demande HTTP au serveur principal avec les détails de la musique. Pour ce faire, commençons par modifier le formulaire et la gestion des téléchargements de fichiers.
Sur le formulaire, nous devons ajouter un écouteur d'événement
qui écoutera le formulaire lors de sa soumission. Dans le champ d'entrée
nous ajoutons un modèle v-
pour lier la valeur au champ d'entrée.
Et la section de script devrait ressembler à ceci:
Nous définirons une fonction qui enverra une demande à notre service principal pour créer toute nouvelle musique qui a été ajoutée à la liste. Aussi. nous devons écrire une fonction de validation simple qui vérifiera le type de fichier afin que les utilisateurs puissent uniquement télécharger des fichiers avec une extension de .mp3 et .mp4 .
C'est important pour définir une propriété calculée pour vous assurer que notre champ de saisie n'est pas vide. Nous devons également ajouter un validateur simple qui s'assurera que le fichier que nous essayons de télécharger est bien un fichier musical.
Continuons en éditant la fonction addMusic
pour faire une demande dans notre dossier. fin du service. Mais avant de faire cela, installons d'abord sweetalert
qui nous fournira une belle fenêtre modale. Pour ce faire, ouvrez votre terminal et saisissez ce qui suit:
npm i sweetalert
Après avoir installé le package, créez un fichier sweetalert.js dans le dossier / plugins
et ajoutez ceci:
import Vue depuis 'vue';
importation de swal de «sweetalert»;
Vue.prototype. $ Swal = swal;
Ensuite, enregistrez le plugin dans le fichier nuxt.config.js à l'intérieur de l'instance de plugin comme ceci:
plugins: [
{
src: '~/plugins/sweetalert'
}
],
Nous avons maintenant configuré avec succès sweetalert
dans notre application, afin que nous puissions continuer et modifier la fonction addmusic
comme suit:
addNewMusic () {
laissez types = /(.|/)(mp3|mp4)$/i
si (
types.test (this.musicDetails.music.type) ||
types.test (this.musicDetails.music.name)
) {
let formData = new FormData ()
formData.append ('title', this.musicDetails.title)
formData.append ('artiste', this.musicDetails.artist)
formData.append ('musique', this.musicDetails.music)
this.addLoading = true
ceci. $ axios
. $ post ('/ musique', formData)
.then (response => {
console.log (réponse)
this.addLoading = false
this.musicDetails = {}
this.getAllMusics () // nous créerons cette fonction plus tard
swal ('Success', 'New Music Added', 'success')
})
.catch (err => {
this.addLoading = false
swal ('Erreur', 'Quelque chose ne va pas', 'erreur')
console.log (err)
})
} autre {
swal ('Erreur', 'Type de fichier invalide', 'erreur')
retour! this.isValid
}
},
Écrivons un script simple qui fera basculer le formulaire, c'est-à-dire qu'il ne devrait s'afficher que lorsque nous voulons ajouter de la nouvelle musique.
Nous pouvons le faire en éditant le bouton "Ajouter de la musique" dans le tableau qui affiche tous les musique que l'on peut trouver:
Ensuite, ajoutez un état qui contiendra l'état du formulaire dans la propriété data
:
addState: false
Après cela, définissons la fonction initForm
:
initForm () {
this.addState =! this.addState
},
Et puis ajoutez v-if = "addState"
à la div
qui contient la forme:
Suppression de musique
Pour supprimer de la musique, nous devons appeler le point d'extrémité supprimer
et transmettre l'ID de musique
comme paramètre. Ajoutons un événement cliquez sur
au bouton "Supprimer" qui déclenchera la fonction pour supprimer une fonction:
La fonction delete
fera une requête HTTP à notre service principal. Après avoir obtenu l'ID de musique du paramètre de fonction deleteMusic
nous ajouterons l'ID dans l'URL que nous utilisons pour envoyer la demande. Ceci spécifie le morceau de musique exact qui doit être supprimé de la base de données.
deleteMusic (id) {
swal ({
title: 'Êtes-vous sûr?',
text: 'Une fois supprimé, vous ne pourrez plus récupérer cette musique!',
icône: 'avertissement',
boutons: vrai,
dangerMode: true
}). Puis (willDelete => {
if (willDelete) {
ceci. $ axios
. $ delete ('/ musique /' + id)
.then (response => {
this.getAllMusics ()
swal ('Poof! Votre fichier musical a été supprimé!', {
icône: «succès»
})
})
.catch (err => {
swal ('Erreur', 'Quelque chose s'est mal passé', 'erreur')
})
} autre {
swal ('Votre fichier musical est en sécurité!')
}
})
}
Avec tout cela, nous venons de construire notre gestionnaire de musique. Il est maintenant temps de créer le lecteur de musique.
Commençons par créer un nouveau dossier dans le dossier des composants nommé / player
. Ensuite, créez un fichier player.vue dans ce dossier et ajoutez ceci:
Player
Ensuite, importons ce composant dans le fichier index.vue du dossier / pages
. Remplacez le code du fichier index.vue par:
Configurons le routage dans notre composant navbar
pour activer le routage entre nos pages.
Pour router dans une application Nuxt.js, le nuxt-link
est utilisé après quoi vous ont spécifié la page de cet itinéraire vers une instance particulière. Modifions donc le code du composant partials / navbar
comme suit:
Avec cela, nous pouvons naviguer dans nos pages en utilisant la barre de navigation.
Construire le lecteur
Avant de commencer, nous devons étendre Webpack pour charger des fichiers audio. Les fichiers audio doivent être traités par le chargeur de fichiers
. Ce chargeur est déjà inclus dans la configuration Webpack par défaut, mais il n'est pas configuré pour gérer les fichiers audio.
Pour ce faire, accédez au fichier nuxt.config.js et modifiez le build
s'y opposer:
build: {
étendre (config, ctx) {
config.module.rules.push ({
test: /.(ogg|mp3|mp4|wav|mpe?g)$/i,
chargeur: 'chargeur de fichiers',
options: {
nom: ' [path][name]. [ext]'
}
})
}
}
Écrivons ensuite une fonction qui récupérera toutes les chansons, puis utiliser le constructeur Audio
pour jouer la première chanson du tableau allMusic
.
Pour commencer, modifions notre player.vue fichier à ceci:
Joueur
{{this.current.title}} - {{this.current.artist}}
Une fois le fichier servi, la musique sera lue en arrière-plan, puis vous devriez pouvoir voir ceci dans votre navigateur:
Pour arrêter la musique, il vous suffit de commenter le attend player.play ()
dans la fonction initPlayer
.
Création de l'interface utilisateur du lecteur [19659010] Définissons maintenant l'interface utilisateur du lecteur de musique en remplaçant le modèle de notre fichier player.vue par ce qui suit:
Joueur
{{this.current.title}} - {{this.current.artist}}
#
Titre
Artiste
Action
1
Marque
1
Marque
Otto
Ajoutez ensuite le style suivant dans la section style
:
Après avoir modifié cela, le lecteur devrait ressembler à ceci:
Ajout de la fonction de lecture
Nous Je vais continuer en affichant la description de la musique sur la table. Pour ce faire, remplacez le tableau par le code ci-dessous:
#
Titre
Artiste
Action
{{index + 1}}
{{music.title}}
{{music.artist}}
Nous ne voulons pas afficher les icônes "Lecture" et "Pause" en même temps. Au lieu de cela, nous voulons une situation où, lorsque la chanson est en cours de lecture, l’icône ‘Pause’ s’affiche. En outre, lorsque le morceau est en pause, l'icône de lecture doit être affichée.
Pour y parvenir, nous devons définir un état isPlaying
sur l'instance false
puis utiliser cette instance pour basculer les icônes. Après cela, nous ajouterons une fonction à notre icône "Play".
isplaying: false
Après cela, modifiez votre icône "Lecture" et "Pause" comme suit:
Avec tout cela, définissons la méthode play
:
play (song) {
console.log (chanson)
if (chanson) {
this.current = song
this.player.src = `http: // localhost: 4000 / $ {this.current.music.path}`
}
this.player.play ()
this.isplaying = true
},
Nous obtenons tout d'abord la chanson actuelle et la passons dans le paramètre de fonction
. Nous définissons ensuite l'instance JavaScript Audio ()
. Ensuite, nous vérifions si la chanson est nulle: si ce n'est pas le cas, nous définissons this.current
sur la chanson que nous avons passée dans le paramètre, puis nous appelons l'instance de joueur Audio
. (N'oubliez pas non plus que nous devons définir l'état isPlaying
sur true
lorsque la musique est en cours de lecture.)
Ajout de la fonction de pause
Pour suspendre une chanson , nous utiliserons la méthode de pause Audio
. Nous devons ajouter un événement cliquez sur
à l'icône de pause:
Et définissez ensuite la fonction dans l'instance de méthodes
:
pause () {
this.player.pause ()
this.isplaying = false
},
Lecture d'une chanson de la liste de musique
C'est assez simple à mettre en œuvre. Tout ce que nous avons à faire est d'ajouter un événement cliquez sur
qui changera le paramètre chanson
dans la méthode play
à la chanson que nous venons de créer.
Modifiez simplement le bouton jouer
sur le tableau de la liste de musique à ceci:
Et le tour est joué!
Ajout de la fonction suivante
Pour ajouter la fonction suivante, nous devons incrémenter l'index d'une unité. Pour ce faire, ajoutez un événement cliquez sur
à l'icône suivante:
@ click = "next"
Et définissez ensuite la fonction prev
dans l'instance de méthodes
:
next () {
this.index ++
if (this.index> this.allMusic.length - 1) {
this.index = 0
}
this.current = this.allMusic [this.index]
this.play (this.current)
},
Ce conditionnel est responsable de la lecture de toutes les chansons chaque fois que la dernière chanson de la liste a été jouée.
Ajout de la précédente
Fonction
C'est en fait l'opposé de la fonction suivante, ajoutons donc un événement click
à la fonction précédente:
@ click = "prev"
Ensuite, nous définissons la fonction précédente:
prev () {
this.index--
if (this.index
Notre application de lecteur de musique est maintenant terminée!
Conclusion
Dans cet article, nous avons examiné comment créer un gestionnaire de musique avec Nuxt.js et Express.js. En cours de route, nous avons vu comment Multer rationalise le processus de gestion des téléchargements de fichiers et comment utiliser Mongoose pour interagir sans base de données. Enfin, nous avons utilisé Nuxt.js pour créer l'application cliente qui lui donne une sensation rapide et rapide.
Contrairement à d'autres frameworks, la création d'une application avec Nuxt.js et Express.js est assez facile et rapide. La partie intéressante de Nuxt.js est la façon dont il gère vos itinéraires et vous permet de mieux structurer vos applications.
- Vous pouvez accéder à plus d'informations sur Nuxt. js ici .
- Vous pouvez accéder au code source sur Github ici
(dm, il)
Source link