Hyperledger Angular App - 错误消息:"无法找到API路线"

时间:2018-05-14 22:22:36

标签: angularjs hyperledger-composer

使用Hyperledger Fabric Composer我创建了一个简单的应用程序。

但是,当我尝试与应用程序(在http://localhost:4200处提供)进行交互时,我不断收到以下错误消息:

Error: 404 - Could not find API route. Please check your available APIs. 

此错误消息出现在我想做的任何事情中(创建新的参与者/资产,提交交易,......)

我检查了错误消息是否与我创建的应用程序有关。所以我还部署了我从互联网上下载的另一个应用程序。同样,当我尝试与UI交互时,出现了相同的错误消息。

       **********************************************************

这是长篇故事:

在我编写代码之后,我采取了通常的步骤来获取Angular Web App:

在应用程序的文件夹(" my_app")中,我创建了一个名为" dist"的文件夹。 内部文件夹" dist"我运行了以下命令:

composer archive create -t dir -n ../

composer network install --archiveFile my_app@0.0.1.bna --card PeerAdmin@hlfv1

composer network start --networkName my_app --networkVersion 0.0.1 --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw

composer card import -f admin@my_app.card

//start rest-server:
composer-rest-server 

yo hyperledger-composer

在我选择的最后一个命令之后(从菜单中)选择创建一个" angular"基于业务网络的应用程序" my_app"。

创建了包含角度应用程序的文件夹(文件夹名称:" angular")。

在文件夹" angular"中,我运行了以下命令:

ng serve

创建了命令行上的一些输出,其中包括以下行:

** NG Live Development Server is running on http://localhost:4200 **

当我去处理http://localhost:4200时,一切都很好看。

但是,每当我点击用户界面中的任何按钮时(例如,在"添加参与者"),我都会收到以下错误消息:

Error: 404 - Could not find API route. Please check your available APIs.

4 个答案:

答案 0 :(得分:2)

我找到了解决方案:

使用

"npm start"

而不是

"ng serve"

避免这个问题。

FYI。有tutorial显示使用包含npm start序列的Composer Angular生成器。

答案 1 :(得分:0)

我有同样的问题并得到了同样的错误messgae。所以我使用yo hyperledger-composer工具重新创建了角度应用程序,但这一次不是选择“连接到现有REST API”,而是选择“创建新的REST API”,然后在localhost:4200上连接正常,而其余服务器仍在运行港口3000。

答案 2 :(得分:0)

我刚刚在Composer CLI工具的0.20版本中遇到了这个问题。我通过在/package.json文件中编辑以下内容解决了该问题:

“开始”条目最初的主机值为“ 0.0.0.0”-

"scripts": {
    "ng": "ng",
    "build": "ng build",
    "prepack": "npm run build",
    "start": "ng serve --proxy-config proxy.conf.js --host 0.0.0.0",
    "lint": "tslint \"src/**/*.ts\"",
    "test": "ng test --watch false",
    "pree2e": "webdriver-manager update --standalone false --gecko false",
    "e2e": "protractor"
  }

我将其更改为“ localhost”-

"scripts": {
    "ng": "ng",
    "build": "ng build",
    "prepack": "npm run build",
    "start": "ng serve --proxy-config proxy.conf.js --host localhost",
    "lint": "tslint \"src/**/*.ts\"",
    "test": "ng test --watch false",
    "pree2e": "webdriver-manager update --standalone false --gecko false",
    "e2e": "protractor"
  }

使用新设置重启Angular应用后,一切正常。

答案 3 :(得分:-1)

我也遇到了此错误,我通过将作曲器和angular应用程序作为后台进程运行来解决了该问题。

我安装了forever package来将两者作为后台进程运行。

然后,如果您不想使用该进程,则将其终止。