javascript - traverson.js 集成到 Angular2 应用程序中

标签 javascript node.js angular hateoas

有没有人成功地将 traverson 集成到 Angular2 应用程序中?如果是这样,是否有可用的分步说明?

尝试将 traverson.js 集成到 Angular2 应用程序中以进行 HATEOAS 遍历。尝试按照此技术拉入 traverson.js ( https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.9qx93kgki )。

遇到依赖性问题,从 traverson 使用“require()”开始。典型错误:

Uncaught Error: Module name "minilog" has not been loaded yet for context: _. Use require([])

还尝试使用 ngUpgrade 引入 traverson-angular(基于 angular 1.x 的模块),但遇到了更多依赖问题...

最佳答案

我设法简单地安装了 traverson 并将其用于 Angular 服务:

npm install traverson

然后,在您的服务中:

// imports

const traverson = require('traverson');

@Injectable() 
export class Service { 
   public getData(): Observable<Data> {
      const promise: Promise<Counterparty> = new Promise((resolve, reject) => { 
         traverson 
         .from('http://my-api.com') 
         // Add your traverson options here
         .follow('link', 'other-link')
         .getResource((error, data) => { 
              if (error) { 
                reject(error); 
              } else { 
                resolve(data); 
              });
      }
      return Observable.fromPromise(promise); 
   }
}

这里的问题是 traverson 还没有最新的类型,所以你有一个混合的 JS/TS 代码。

我没有设法直接使用 observable,这就是为什么我忽略了一个 promise,顺便说一下,它要简单得多。

注意 traverson 使用它自己的 http 客户端。如果你想使用 Angular http 客户端,你需要创建一个桥接类,它实现了以下方法:

get(uri: string, options: any, callback: (err, response) => void);
del(uri: string, options: any, callback: (err, response) => void);
post(uri: string, options: any, callback: (err, response) => void);
put(uri: string, options: any, callback: (err, response) => void);
patch(uri: string, options: any, callback: (err, response) => void);

options 是遍历选项。

希望对你有帮助

关于javascript - traverson.js 集成到 Angular2 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35725292/

相关文章:

javascript - 有效地更改 Javascript 或 Node.js 中数组的大小

Javascript Angular 6 通过浏览器开发工具改变安全性

Angular Material 表不显示数据

JavaScript 范围/this

javascript - 如何将元素高度调整为另一个元素的高度?

javascript - 我正在计算两个日期之间的天数,没有周末从 JavaScript 中的日期选择器获取

unit-testing - Angular 2 : how to test a component which has an observable time interval

javascript - 在 Data-toggle ="collapse"bootstrap 下默认打开 Navigation

javascript - 使用 X509 证书验证 Docusign Connect 签名

php - NodeJS 推送队列,由 Laravel worker 使用