我使用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
有任何想法或提示吗?
答案 0 :(得分:84)
它作为Angular的依赖项的一部分下载,使用它像:
import { v4 as uuid } from 'uuid';
@Component(..)
export class AppComponent {
console.log('new uid: ', uuid());
}
答案 1 :(得分:1)
对于 Angular 11+
npm i uuid
import { v4 as uuidv4 } from 'uuid';
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
中的其他位置,错误消失了。一切正常。