2016-11-08 9 views
5

जब भी मैं अपने कार्यक्रम क्रियान्वित, मैं प्राप्त निम्नलिखित TypeError है:Node.js लेखन त्रुटि: ऑब्जेक्ट समारोह वस्तु() {[मूल कोड]} कोई विधि 'आवंटित'

/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) 

मैं खोज की, लेकिन मैं असमर्थ हूँ इस त्रुटि को समझने के लिए।

क्या मुझे एक विशेष मॉड्यूल स्थापित करना है?

क्या मुझे नोड या एनपीएम अपडेट करना है?

क्या मेरे कार्यक्रम में कोई त्रुटि है?

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

     }); 
    }); 

कोई कुछ प्रकाश डाला कृपया कर सकते हैं:

यहाँ मेरी कार्यक्रम है?

+3

* * सबसे अधिक संभावना "मैं नोड अद्यतन करने के लिए है"। आप किस संस्करण का उपयोग करते हैं? यह देखने के लिए कि आपका संस्करण 'Object.assign' का समर्थन करता है या नहीं, http://node.green/ पर एक नज़र डालें। –

उत्तर

6

केवल v4 Node.js और ऊपर Object.assign में निर्माण किया है।

आप नोड के एक पुराने संस्करण का उपयोग कर रहे हैं, तो आप object.assign की तरह एक polyfill उपयोग कर सकते हैं।

+0

node.js. के एक और आधुनिक संस्करण को अपडेट करने के लिए बेहतर – jfriend00

0

मई मुझे बहुत देर हो चुकी है। मुझे एक ही समस्या का सामना करना पड़ा है और इसे नीचे की तरह हल करें। Nodejs.org वेबसाइट से नोड के नवीनतम संस्करण को डाउनलोड और इंस्टॉल करें। वीडियो https://docs.npmjs.com/getting-started/installing-node देखें और नोड संस्करण (नोड-वी) जांचें, उम्मीद है कि यह v6 + होना चाहिए। उम्मीद है कि यह आपके मुद्दे को हल करता है।

1

कॉर्डोवा प्रोजेक्ट में इस तरह की त्रुटि प्राप्त करना, इस कोड ने मेरी समस्या को ठीक कर दिया है;

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

संबंधित मुद्दे