Node.js TypeError: Object function Object () {[native code]} does not have a 'assign' method

Whenever I execute my program, I get the following 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) 

I searched, but I can not understand this error.

Do I need to install a special module?

Do I need to upgrade Node or npm?

Is there a bug in my program?

Here is my program:

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

Can someone shed some light?

+5
source share
3 answers

Only Node.js v4 and above has Object.assign built-in.

If you are using an older version of Node, you can use a polyfill, such as object.assign .

+6
source

Getting these kinds of errors in a Cordova project, adding this code fixed my problem;

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

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

+1
source

Maybe I'm late. I ran into the same problem and figured out as below. Download and install the latest version of node from nodejs.org. see the video https://docs.npmjs.com/getting-started/installing-node and check the version of node (node ​​-v), hope it should be v6 +. Hope it solves your problem.

0
source

Source: https://habr.com/ru/post/1259435/


All Articles