# Kibanaプラグインで FieldFormat is not a constructor エラー

**URL:** https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827
**Category:** 日本語による質問・議論はこちら
**Created:** [October 31, 2017, 2:55am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827 "2017-10-31T02:55:04Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![drumn](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@drumn](https://discuss.elastic.co/u/drumn)
#### Post date: [October 31, 2017, 2:55am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/1 "2017-10-31T02:55:05Z")

</div>

お世話になっております。

kibana + ElasticSearch (6.0.0-rc1)でkibanaプラグインの開発を試みており、  
こちらのサイトの記述を真似てvisualizeを表示しようとしています。  
[https://www.elastic.co/guide/en/kibana/master/development-embedding-visualizations.html](https://www.elastic.co/guide/en/kibana/master/development-embedding-visualizations.html)

ですが、実行時に「TypeError: FieldFormat is not a constructor」のエラーが発生してしまいます。

コードは下記の通りです。

```
・index.html
<div ng-controller="KbnTestController" class="test_vis">
  <visualize saved-obj='savedVis'></visualize>
</div>

・app.js
import { uiModules } from 'ui/modules';
import uiRoutes from 'ui/routes';
import template from './templates/index.html';
import 'plugins/kibana/discover/saved_searches';
import 'plugins/kibana/visualize/saved_visualizations/_saved_vis';
import 'plugins/kibana/visualize/saved_visualizations/saved_visualizations';
import 'ui/courier/';
import 'ui/modals';

uiRoutes.enable();
uiRoutes
.when('/', {
  template
});

uiModules.get('kibana')
.controller('KbnTestController', function ($scope, AppState, savedVisualizations) {
  const visId = 'f9b85b70-a27d-11e7-94dc-eb7c16196973';
  var savedVis = savedVisualizations.get(visId);
  if (savedVis != undefined) {
    $scope.savedObj = savedVis;
  };
});

```

間違い箇所や初期設定に必要なことなど、ご教示いただけないでしょうか。  
よろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)
#### Post date: [November 2, 2017, 7:15am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/2 "2017-11-02T07:15:40Z")

</div>

他にログは出ていないでしょうか？  
出ているようであれば、ログを全て貼っていただけますでしょうか？

また、「実行時」とありますが、起動したタイミングで出るのでしょうか？それとも何か操作をしたタイミングで出てくるのでしょうか？

---

<div class="post-metadata">

### Author: ![drumn](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@drumn](https://discuss.elastic.co/u/drumn)
#### Post date: [November 6, 2017, 1:45am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/3 "2017-11-06T01:45:31Z")

</div>

返信いただきありがとうございます。  
完全には解決していませんが、原因のひとつとして、サイトに記載の内容は6.0.0-rc1用ではなく、  
6.0.0-rc2用であるようですので、環境を構築した上で確認してみたいと思います。

---

<div class="post-metadata">

### Author: ![drumn](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@drumn](https://discuss.elastic.co/u/drumn)
#### Post date: [November 9, 2017, 2:56am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/4 "2017-11-09T02:56:11Z")

</div>

お世話になっております。  
6.0.0-rc2の環境でも同一事象が発生しますので、再度投稿させていただきました。

kibana画面左メニューより、プラグイン名をクリックしたときに、ブラウザのコンソールに下記のエラーメッセージが表示されます。

```
C:\app\nodejs\6.0.0-rc2\kibana\node_modules\angular\angular.js:14642 TypeError: FieldFormat is not a constructor
    at IndexedArray.<anonymous> (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\registry\field_formats.js:84)
    at IndexedArray.memoized [as getDefaultInstance] (C:\app\nodejs\6.0.0-rc2\kibana\node_modules\lodash\index.js:7912)
    at new IndexPattern (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\index_patterns\_index_pattern.js:229)
    at Object.IndexPatternsProvider.self.make (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\index_patterns\index_patterns.js:53)
    at Object.IndexPatternsProvider.self.get (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\index_patterns\index_patterns.js:49)
    at SavedVis.SavedObject.hydrateIndexPattern (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\courier\saved_object\saved_object.js:160)
    at C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\courier\saved_object\saved_object.js:238
    at Function.Promise.try (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\promises\promises.js:94)
    at SavedObject.applyESResp (C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public\courier\saved_object\saved_object.js:236)
    at processQueue (C:\app\nodejs\6.0.0-rc2\kibana\node_modules\angular\angular.js:17000) "Possibly unhandled rejection: {}"

```

何か情報をいただきたく思います。  
よろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)
#### Post date: [November 9, 2017, 3:10am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/5 "2017-11-09T03:10:00Z")

</div>

Kibanaのサーバー側にはログは出てないでしょうか？

---

<div class="post-metadata">

### Author: ![drumn](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@drumn](https://discuss.elastic.co/u/drumn)
#### Post date: [November 9, 2017, 3:45am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/6 "2017-11-09T03:45:48Z")

</div>

回答頂きありがとうございます。

kibana.batを実行したコマンドプロンプトには、エラーメッセージは表示されていません。  
kibanaのサーバーログは、kibana.batを実行したコマンドプロンプト以外にファイルとして出力されるものでしょうか？  
出力されるパス等について教えてください。

よろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)
#### Post date: [November 9, 2017, 4:54am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/7 "2017-11-09T04:54:08Z")

</div>

> [@Can't refresh an index pattern through my plugin](https://discuss.elastic.co/t/cant-refresh-an-index-pattern-through-my-plugin/65634):
>
> Hi, I am developping a kibana plugin which, at some point, needs to refresh the fields of a specific index pattern. I'm using the following code: import uiModules from 'ui/modules'; import 'ui/courier'; var app = uiModules.get('app/myApp', ['kibana/courier']); app.controller('myCtrl', function($scope, courier) { let indexPattern = courier.indexPatterns.get('myIndexPattern-\*'); indexPattern.refreshFields(); }); But, I'm getting the following error: angular.js:12477 TypeError: FieldF…

この辺りでしょうか？

---

<div class="post-metadata">

### Author: ![drumn](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@drumn](https://discuss.elastic.co/u/drumn)
#### Post date: [November 9, 2017, 5:24am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/8 "2017-11-09T05:24:20Z")

</div>

回答頂きありがとうございます。

提示いただいたページに記載されていた「import 'ui/stringify/register';」を追加したところ、  
下記のエラーが発生しました。

> Module not found: Error: Cannot resolve 'file' or 'directory' C:\app\nodejs\6.0.0-rc2\kibana\src\ui\public/stringify/register in C:\app  
> nodejs\6.0.0-rc2\visualize-plugin\public

そこで、kibana\src\ui\publicフォルダを参照し、「import 'ui/registry/\_registry';」  
を追加したところ、サーバーログ、ブラウザのコンソールともにエラーは表示されなくなりましたが、  
Visualizeが表示されず真っ白の画面が表示されます。

なお、初期に投稿したコードについて、app.js の uiModulesの記述を、development-embedding-visualizations.htmlに  
記載の内容と同じになるよう修正しております。

```
uiModules.get('kibana')
.controller('KbnTestController', function ($scope, AppState, savedVisualizations) {
  const visId = 'f9b85b70-a27d-11e7-94dc-eb7c16196973';
  savedVisualizations.get(visId).then(savedVis => $scope.savedObj = savedVis);
});

```

何度も申し訳ありませんが、他にどのような原因が考えられるのか、ご教示いただきたく思います。  
よろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [December 7, 2017, 5:24am UTC](https://discuss.elastic.co/t/kibana-fieldformat-is-not-a-constructor/105827/9 "2017-12-07T05:24:39Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
