TypeError:Object.entries不是函数

15 javascript node.js express ecmascript-next

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

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

der*_*erp 11

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

所以像这样运行节点

node --harmony script.js
Run Code Online (Sandbox Code Playgroud)

  • 也许他们应该考虑制作像"--latest"或类似的旗帜.少输入一个字符.;-) (3认同)

pej*_*eja 11

在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;
   };
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以babel-polyfill用于快速解决方案

npm install babel-polyfill

import 'babel-polyfill';
Run Code Online (Sandbox Code Playgroud)


Sne*_*kse 5

万一这对其他人有帮助...

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