如何用angular2生成UUID?

How to generate UUID with angular 2?

我正在使用 Angular 2 作为注册表单: 名字、姓氏、电子邮件和密码。

提交后,数据通过 API 调用存储在数据库(nodeJs 和 mongo)中,并生成一个 JWT 令牌,该令牌被发送回客户端。

现在我应该 add/generate 一个 UUID(通用唯一标识符)。因为我以前从未做过这种功能,所以我需要一种方法和 idea/solution 如何实现这个……JWT 令牌会是 UUID 的一种替代品吗?如果是,这就足够了。

否则我宁愿避免对表单或其功能进行任何大的更改。

我一直在寻找,但没有找到有用的解决方案。我尝试了 npm 包 angular2-uuid,但在将其作为依赖项安装后,ng build -prod 抛出了一个不清楚的错误。

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

错误:

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

有什么想法或提示吗?

试试这个 (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

希望对您有所帮助! ..如您所见,它与此处报告的有所不同 (https://www.npmjs.com/package/angular2-uuid)

问题已解决。解决方案:我发现当我通过命令行安装包 angular2-uuid 时,它会自动存储在 package.json 直接 before/over 包:@angular/flex-layout

由于错误在某种程度上并不清楚,所以我只是将其移至 package.json 中的其他位置,错误就消失了。一切正常。

它作为 Angular 依赖项的一部分下载,使用方式如下:

import { v4 as uuid } from 'uuid';

@Component(..)
export class AppComponent {

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

对于Angular 11+

  1. npm i uuid
  2. 在您的组件中,在您的导入所在的顶部,添加 import { v4 as uuidv4 } from 'uuid';
  3. 要对此进行测试:
ngOnInit() {
  console.log('new uid: ', uuidv4());
}