TypeError:Object.entries不是函数

时间:2017-05-08 23:27:01

标签: javascript node.js express ecmascript-next

为什么我在尝试运行Node.js / Express服务器时仍然遇到此错误?

这是新款ES7的一部分吗?使用这些新功能运行应用程序需要什么?

7 个答案:

答案 0 :(得分:11)

根据Object静态方法下的http://kangax.github.io/compat-table/es2016plus/,您似乎需要启用和声标志

所以像这样运行节点

node --harmony script.js

答案 1 :(得分:7)

在mdn docs上,有一个关于Object.entries的明确教程,并描述了如果同一页面中的PolyFill部分不支持Object.entries,该怎么做。

  

要在原本不支持它的旧环境中添加兼容的Object.entries支持,您可以在tc39 / proposal-object-values-entries中找到Object.entries的演示实现(如果您不需要)任何对IE的支持),es-shims / Object.entries存储库中的polyfill,或者您可以使用下面列出的简单,准备部署的polyfill。

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;
   };

答案 2 :(得分:3)

您可以使用babel-polyfill进行快速解决方案

npm install babel-polyfill

import 'babel-polyfill';

答案 3 :(得分:3)

首先安装react-app-polyfill

npm install react-app-polyfill

然后在导入React之前先导入index.jsx的顶部:

import 'react-app-polyfill/stable';

答案 4 :(得分:2)

如果这有助于其他人......

更新您的Node版本。我正在运行节点6.x,此问题在我更新到节点8.x +

后自行解决

答案 5 :(得分:0)

就我而言,当我从节点11.15.0切换到lts/erbium / 12.18.3时,它自行解决。

答案 6 :(得分:0)

代替

const myObj = {a: 1, b: 2}

myObj.entries()

Object.entries(myObj)