web-dev-qa-db-ja.com

TypeError:Object.entriesは関数ではありません

Node.js/Expressサーバーを実行しようとすると、なぜこのエラーが表示されるのですか?

これは新しいES7の一部ですか?これらの新機能を使用してアプリを実行するには、何が必要ですか?

15
user7917402

http://kangax.github.io/compat-table/es2016plus/ によると、オブジェクトの静的メソッドの下では、調和フラグを有効にする必要があるようです

このようにノードを実行します

node --harmony script.js
11
derp

Mdn docsには、 Object.entries に関する明確なチュートリアルがあり、Object.entriesが同じページで PolyFill の一部でサポートされていない場合の対処方法が説明されています。 。

ネイティブにサポートしていない古い環境で互換性のあるObject.entriesサポートを追加するには、tc39/proposal-object-values-entriesにObject.entriesのデモ実装を見つけることができます(IEのサポートが必要ない場合) 、es-shims/Object.entriesリポジトリ内のポリフィル、または、以下にリストされている簡単なデプロイ可能なポリフィルを使用できます。

if (!Object.entries)
   Object.entries = function( obj ){
      var ownProps = Object.keys( obj ),
         i = ownProps.length,
         resArray = new Array(i); // preallocate the Array

      while (i--)
         resArray[i] = [ownProps[i], obj[ownProps[i]]];
      return resArray;
   };
9
peja

babel-polyfillを使用すると、迅速な解決策が得られます

npm install babel-polyfill

import 'babel-polyfill';
4
deepak prakash

これが他の人に役立つ場合...

Nodeのバージョンを更新します。ノード6.xを実行していましたが、ノード8.x以降に更新すると、この問題は解決しました。

2
Snekse