如何用角度2生成UUID?

时间:2017-08-18 10:51:56

标签: angular uuid

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

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

现在我应该添加/生成UUID(通用唯一标识符)。由于我以前从未做过这种功能,我需要一种方法和想法/解决方案如何实现这一点... JWT令牌是否可以替代UUID?如果是的话,这就足够了。

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

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

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

错误:

  

错误在./~/@angular/flex-layout/@angular/flex-layout.es5.js模块        构建失败:错误:ENOENT:没有这样的文件或目录,打开        ' /用户/用户名的/ dev /应用程序/ node_modules / @角/ 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

有任何想法或提示吗?

4 个答案:

答案 0 :(得分:84)

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

import { v4 as uuid } from 'uuid';

@Component(..)
export class AppComponent {

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

答案 1 :(得分:1)

对于 Angular 11+

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

由于错误的方式不明确,我只是将其删除到package.json中的其他位置,错误消失了。一切正常。