Sam Williams Sam Williams - 29 days ago 22
Node.js Question

Node.js TypeError: Object function Object() { [native code] } has no method 'assign'

Whenever I execute my program, I receive 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 am unable to understand this error.

Do I have to install a special module?

Do I have to update Node or npm?

Is there an error 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 please shed some light?

Answer

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

If you're using an older version of Node, you can use a polyfill like object.assign.