2017-08-18 1 views
3

J'utilise Angular 2 pour un formulaire d'inscription: prénom, nom, email et mot de passe. Après l'envoi, les données sont stockées via un appel d'API dans une base de données (nodeJs et mongo) et génèrent un jeton JWT qui est renvoyé au client.Comment générer UUID avec angulaire 2?

Maintenant, je devrais ajouter/générer un UUID (Universal Unique Identifier). Comme je n'ai jamais fait ce genre de fonctionnalité auparavant, j'ai besoin d'une approche et d'une idée/solution pour y parvenir ... le Jeton JWT serait-il une sorte d'alternative à l'UUID? Si oui, ce serait suffisant.

Sinon, je préférerais éviter de gros changements sur le formulaire ou ses fonctionnalités.

J'ai recherché, mais je n'ai pas trouvé de solution utile. J'ai essayé le paquet npm angular2-uuid, mais après l'avoir installé en tant que dépendance, le ng build -prod lève une erreur qui n'est pas claire.

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

Erreur:

ERROR in ./~/@angular/flex-layout/@angular/flex-layout.es5.js Module 
build failed: Error: ENOENT: no such file or directory, open 
'/Users/username/dev/app/node_modules/@angular/flex- 
layout/@angular/flex-layout.es5.js' @ 
./src/$$_gendir/app/app.module.ngfactory.ts 25:0-44 @ ./src/main.ts @ 
multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts 

Toute idée ou Conseil s'il vous plaît?

+0

'renvoie une erreur qui ne clear' ...' Toute idée ou Conseil s'il vous plaît 'Astuce: quelle est l'erreur? –

+0

@DarrenSweeney: Oui, vous avez raison. Pardon. Voici l'erreur: 'ERROR in ./~/@angular/flex-layout/@angular/flex-layout.es5.js La construction du module a échoué: Erreur: ENOENT: aucun fichier ou répertoire, ouvrez '/ Users/username /dev/app/node_modules/@angular/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' L'erreur n'a en fait rien à voir avec le 'UUID' installé. Lorsque je le désinstalle, l'erreur disparaît. –

Répondre

0

Problème résolu. Lösung: J'ai découvert que quand j'ai installé le paquet angular2-uuid par la ligne de commande, il était automatiquement stocké dans package.json directement avant/sur le paquet: @angular/flex-layout.

Comme l'erreur n'était pas claire, je l'ai juste supprimé à l'autre position dans le: package.json et l'erreur est partie. Tout fonctionne bien.

0

essayer ce (https://github.com/wulfsolter/angular2-uuid)

Comme le doc dit:

import { UuidService } from 'angular2-uuid'; 

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

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

espérons qu'il vous aidera! .. comme vous pouvez le voir a changé un peu de ce qu'il rapporte ici (https://www.npmjs.com/package/angular2-uuid)

+0

Erreur: '[ts] Module '"/Utilisateurs/nom d'utilisateur/dev/app/node_modules/angular2-uuid/index "' n'a aucun membre exporté 'UuidService'' –

+0

Mm essayez de l'ajouter à vos fournisseurs –

+0

Dans' ajouter .module.ts'? C'est ce à quoi je pensais. Je vais essayer. –

14

Il fait partie angulaire, l'utiliser comme:

import { v4 as uuid } from 'uuid'; 

@Component(..) 
export class AppComponent { 

    console.log('new uid: ', uuid()); 
} 
+1

Merci l'homme, ça marche !! J'ai créé une [démo ici] (https://stackblitz.com/edit/angular-uuid-generation?file=app%2Fapp.component.ts), pour les futurs lecteurs. Je ne sais pas si cela fait partie de l'angulaire, mais je pense que [ce] paquet (https://www.npmjs.com/package/uuid) est utilisé. – cyberpirate92