如何用角度2生成UUID?

k.v*_*ent 29 uuid angular

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

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

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

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

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

import { UUID } from 'angular2-uuid';
....
let uuid = UUID.UUID();
Run Code Online (Sandbox Code Playgroud)

错误:

错误在./~/@angular/flex-layout/@angular/flex-layout.es5.js模块构建失败:错误:ENOENT:没有这样的文件或目录,打开'/ 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 @多webpack-dev-server /客户端?http:// localhost:4200 ./src/main.ts

有什么想法或提示吗?

Zol*_*csi 92

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

import { v4 as uuid } from 'uuid';

@Component(..)
export class AppComponent {

  console.log('new uid: ', uuid());
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢男人,它的作品!我为未来的读者创建了一个[demo here](https://stackblitz.com/edit/angular-uuid-generation?file=app%2Fapp.component.ts).不确定它是否是角度的一部分,我认为[this](https://www.npmjs.com/package/uuid)包正在使用. (5认同)
  • 确保在执行前运行`npm install --save @ types / uuid`。 (2认同)

k.v*_*ent 0

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

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

  • `angular2-uuid` 未维护。请改用 `uuid` 包。 (3认同)