angular 2服务中的node-forge导入

时间:2016-06-21 15:41:55

标签: node.js angular npm

我正在尝试在我的Angular 2项目中使用Forge(https://github.com/digitalbazaar/forge)。

我运行了以下命令:npm install node-forge 此命令在我的应用程序中创建了node-forge目录(在node-modules目录中)。

我在package.json文件中添加了node-forge引用:"node-forge": "0.6.39"(依赖项部分)。

现在,我想使用以下代码在angular 2服务(typescript文件)中导入node-forge依赖项:

import { Injectable } from '@angular/core';
import { Forge } from 'node-forge';

@Injectable()
export class HashPasswordService {
  constructor() {}
  buildHash(input: string) {
    var hmac = forge.hmac.create();
    hmac.start('sha512', input);
    hmac.update(input);
    return hmac.digest().toHex();
  }
}

但导入不起作用:import { Forge } from 'node-forge';我在控制台中有以下错误(ng serve命令):

hash-password.service.ts (2, 23): Cannot find module 'node-forge'.
hash-password.service.ts (11, 16): Cannot find name 'forge'.

所以,有人知道如何导入这个node-forge依赖项(使用npm包)?我是否错过了我的过程中的一步?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您需要打字稿定义以及npm包..

我不确定此软件包是否包含DefinitelyTyped个包,因此您可以尝试

npm install typings -g
typings install node-forge

如果这不起作用,请尝试:

import { Injectable } from '@angular/core';

declare var Forge: any;

@Injectable()
export class HashPasswordService {
  private forge: any;

  constructor() {
     this.forge = new Forge();
  }

  buildHash(input: string) {
    var hmac = forge.hmac.create();
    hmac.start('sha512', input);
    hmac.update(input);
    return hmac.digest().toHex();
  }
}

答案 1 :(得分:0)

import * as forge from 'node-forge'就这样。