Voordat u begint, moet u ervoor zorgen dat u een geïnstalleerde MongoDB en Node.js op uw machine heeft.
1. Installeren van benodigde pakketten: U moet de ‘mongoose’ en ‘jsonwebtoken’ bibliotheken installeren. Mongoose is een MongoDB object-modeling tool ontworpen om te werken in een asynchrone omgeving. JSONWebToken is een methode voor het verzenden van veilige informatie in JSON-formaat. U kunt ze installeren met behulp van de volgende npm opdrachten:
```
npm install mongoose
npm install jsonwebtoken
```
1. Maak een nieuw bestand met de naam ‘userSchema.js’. Een schema in Mongoose is een object dat definieert de structuur van je documenten in MongoDB. Hier definieert u de gegevens die u wilt opslaan in MongoDB.
```
const mongoose = require(‘mongoose’);
const Schema = mongoose.Schema;
const UserSchema = new Schema({
name: String,
password: String,
role: String,
});
module.exports = mongoose.model(‘User’, UserSchema);
```
1. Creëer een nieuw ‘userService.js’ bestand waar u Mongoose methoden gebruikt om te communiceren met MongoDB. Hiermee kunt u een nieuwe gebruiker maken en een gebruiker zoeken.
```
const User = require(‘./userSchema’);
const jwt = require(‘jsonwebtoken’);
const createUser = (name, password, role) => { const user = new User({ name: name, password: password, role: role });
return user.save(); };const authenticateUser = async (name, password) => { const user = await User.findOne({ name: name });
if (user && user.password === password) { const token = jwt.sign({ name: user.name, role: user.role }, ‘my_secret_key’); return token; } throw new Error(‘Authentication failed’); };module.exports = { createUser, authenticateUser };
```
1. Gebruik de functies uit userService.js in uw applicatie. U kunt deze functies nu gebruiken om een nieuwe gebruiker te maken en een gebruiker te authenticeren.
```
const userService = require(‘./userService’);
const createNewUser = async () => {
try {
const user = await userService.createUser(‘John Doe’, ‘password’, ‘admin’);
console.log(‘User created: ‘, user);
} catch (error) {
console.error(‘Error creating user: ‘, error);
}
};
const loginUser = async () => {
try {
const token = await userService.authenticateUser(‘John Doe’, ‘password’);
console.log(‘JWT: ‘, token);
} catch (error) {
console.error(‘Error during authentication: ‘, error);
}
};
createNewUser();
loginUser();
```
Vergeet niet dat u altijd uw eigen foutopsporings- of succesberichten kunt toevoegen om het proces beter te begrijpen.