Comment générer UUID avec angular 2?

J'utilise L'Angular 2 pour un formulaire d'inscription: prénom, nom, email et mot de passe.

après submit, les données sont stockées via un appel API dans une base de données (nodeJs et mongo) et génère un JWT Token qui est renvoyé au client.

maintenant je devrais ajouter / générer un UUID (Universal Unique Identifier). Comme je n'ai jamais fait ce genre de fonctionnalité avant, j'ai besoin d'une approche et une idée/solution comment atteindre cet objectif... le JWT Token serait-il une sorte d'alternative à UUID? Si oui, ce serait assez.

sinon je préférerais éviter tout gros changement sur le formulaire ou sa fonctionnalité.

j'Ai cherché, mais n'ai pas trouvé une solution utile. J'ai essayé le paquet npm angular2-uuid, mais après l'avoir installé comme dépendance, le ng build -prod renvoie une erreur qui n'est pas clair.

import { UUID } from 'angular2-uuid';
....
let uuid = UUID.UUID();

Erreur:

erreur dans . / ~ / @angular/flex-layout/@angular/flex-layout.es5.js Module construire échoué: erreur: ENOENT: aucun fichier ou répertoire de ce type, ouvrir /Utilisateurs/nom d'utilisateur/dev/app/node_modules/@angulaire/flex- layout/@angular/flex-layout.es5.js" @ ./ src/$_gendir/app / app.module.ngfactory.ts 25: 0-44 @ ./ src / main.ts @ multi webpack-dev-serveur/client?http://localhost:4200 ./ src / main.ts

une idée ou un indice s'il vous plaît?

16
demandé sur k.vincent 2017-08-18 13:51:55

3 réponses

il est téléchargé comme une partie de la dépendance D'Angular, utilisez-le comme:

import { v4 as uuid } from 'uuid';

@Component(..)
export class AppComponent {

  console.log('new uid: ', uuid());
}
44
répondu Zolcsi 2018-10-03 01:25:20

essayez ceci (https://github.com/wulfsolter/angular2-uuid)

import { UuidService } from 'angular2-uuid';

constructor(private uuid: UuidService) //<-- pass it in contructor as service

const uuid = this.uuid.generate(); //<-- use it

Espère que cela vous aide! ..comme vous pouvez le voir changer un peu de ce rapport ici (https://www.npmjs.com/package/angular2-uuid)

0
répondu federico scamuzzi 2017-08-18 10:56:33

Problème résolu. Solution: j'ai découvert que lorsque j'ai fait installer le paquet angular2-uuid via la ligne de commande, il a été automatiquement stocké dans package.json directement avant/au-dessus du paquet: @angular/flex-layout.

comme l'erreur n'était pas claire, je l'ai simplement retirée à une autre position dans le: package.json et l'erreur a disparu. tout fonctionne très bien.

0
répondu k.vincent 2017-08-20 10:58:04