Node.js TypeError:Object function Object(){}没有方法'assign'

每当我执行我的程序,我收到以下TypeError

 /home/Node-Project/node_modules/sentiment/lib/index.js:31 afinn = Object.assign(afinn, inject); ^ TypeError: Object function Object() { [native code] } has no method 'assign' at module.exports (/home/Node-Project/node_modules/sentiment/lib/index.js:31:24) at EventEmitter.<anonymous> (/home/Node-Project/twit4.js:17:9) at EventEmitter.emit (events.js:95:17) at EventEmitter.processTweet (/home/Node-Project/node_modules/ntwitter/lib/twitter.js:242:14) at EventEmitter.emit (events.js:95:17) at EventEmitter.receive (/home/Node-Project/node_modules/ntwitter/lib/parser.js:44:12) at IncomingMessage.<anonymous> (/home/Node-Project/node_modules/ntwitter/lib/twitter.js:258:16) at IncomingMessage.emit (events.js:95:17) at IncomingMessage.<anonymous> (_stream_readable.js:765:14) at IncomingMessage.emit (events.js:92:17) 

我搜查,但我无法理解这个错误。

我必须安装一个特殊的模块吗?

我必须更新Node或npm吗?

我的程序有错误吗?

这是我的程序:

 var twitter = require('ntwitter'); var credentials = require('./credentials3.js'); var sentiment = require ('sentiment'); var twit = new twitter({ consumer_key: credentials.consumer_key, consumer_secret: credentials.consumer_secret, access_token_key: credentials.access_token_key, access_token_secret: credentials.access_token_secret }); twit.stream('statuses/filter',{ 'locations':'loc'}, function(stream) { stream.on('data', function(tweet) { var twitterSentiment, geoColor; sentiment(tweet.text, function (err, result) { twitterSentiment = result; if (result == 0) { geoColor = '#B5B5B5'; } else if (result < 0) { geoColor = '#FC0828'; } else { geoColor = '#00DE1E'; } console.log(result); }); }); }); 

有人可以摆脱一些光?

只有Node.js v4及以上版本内置了Object.assign

如果您使用的是旧版本的Node,则可以使用像object.assign这样的polyfill 。

在Cordova项目中得到这样的错误,添加这个代码已经解决了我的问题;

 if (typeof Object.assign != 'function') { Object.assign = function (target, varArgs) { 'use strict'; if (target == null) { throw new TypeError('Cannot convert undefined or null to object'); } var to = Object(target); for (var index = 1; index < arguments.length; index++) { var nextSource = arguments[index]; if (nextSource != null) { for (var nextKey in nextSource) { if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { to[nextKey] = nextSource[nextKey]; } } } } return to; }; } 

来源: https : //github.com/auth0/auth0-cordova/issues/46#issuecomment-311923820

可能是我太迟了。 我面临同样的问题,并像下面那样分类。 从nodejs.org网站下载并安装最新版本的节点。 参考videohttps://docs.npmjs.com/getting-started/installing-node并检查节点版本(node -v),希望它应该是v6 +。 希望它能解决你的问题。