2011-11-27 10 views
10

मेरे पास मूल node.js सेटअप है, लेकिन मुझे लगता है कि मुझे कुछ याद आ रहा है।node.js पृष्ठ दो बार कॉलिंग संसाधन रीफ्रेश करें?

मेरे main.js:

var a = require('./another.js'); 

var http = require('http'); 
http.createServer(function (request, response) { 
    response.writeHead(200, 
    { 
     'Content-Type': 'text/html' 
    }); 

    response.write(a.saysomething('Hi there!') + '<br />'); 
    response.end(); 
}).listen(27182); 

console.log('Server running at http://127.0.0.1:27182/'); 

मेरे another.js:

exports.saysomething = function (str) { 
    console.log('in saysomething!'); 
    return str + ' hey there!'; 
} 

मुद्दा है कि मेरे कंसोल in saysomething! दो बार outputting है। क्या मैं कुछ भूल रहा हूँ? जब मैं पृष्ठ को रीफ्रेश करता हूं, तो मुझे केवल एक in saysomething! की उम्मीद है।

+0

अपने पृष्ठ पाठ के अलावा और कुछ होते हैं? वहां कोई एसआरसी विशेषता वाला कोई चित्र या कुछ भी? – JohnP

+0

नहीं। मैंने जो पोस्ट किया है वह वैध रूप से मेरे पास है। मेरा आउटपुट 'हाय वहाँ है! सुनो!
' – JesseBuesking

+0

अपने क्रोम प्लगइन्स की जांच करें - मेरे पास एक स्नफ़फर प्लगइन था जो दूसरा http अनुरोध कर रहा था, हर अनुरोध! –

उत्तर

30

आपका ब्राउज़र शायद आप जिस यूआरएल पर मार रहे हैं उसके अलावा favicon.ico पाने की कोशिश कर रहा है। कमांड लाइन पर कमांड करने का प्रयास करें: curl http://127.0.0.1:27182/

इसके अलावा, आप request.url के लिए लॉगिंग जोड़ सकते हैं। यह आपको दिखाएगा कि कौन से यूआरएल का अनुरोध किया जा रहा है।

+0

क्या यह वास्तव में केवल फेविकॉन के लिए पूरे पृष्ठ का पुनः अनुरोध करता है? – JesseBuesking

+3

यह पुनः अनुरोध/favicon.ico। आपका नोड कोड किसी भी यूआरएल का जवाब देगा जिसमें OHMYGODTHISISAURLTOO शामिल है :) –

+0

क्या node.js में किसी रूट को अनदेखा करने का कोई तरीका है? मुझे पता है कि आप इसे एएसपीएनटी एमवीसी में कर सकते हैं। – JesseBuesking

0

समस्या को समझने का एक और तरीका यहां है। यह नोड सर्वर सभी अनुरोधों को ट्रैक करेगा और उन्हें JSON में ब्राउज़र पर दिखाएगा। फिर आप F5 दबा सकते हैं और आपके द्वारा किए जा रहे अनुरोध देख सकते हैं।

var http = require("http"); 

    var messages = []; 

    http.createServer(function(request, response) { 
     console.log("We got a hit @ " + new Date());   
     messages.push(request.url); 
     messages.push(request.headers); 

      response.writeHead(200, {"Content-Type": "text/plain"}); 
     for (var i = 0; i < messages.length; ++i) { 
      response.write("\n\n" + JSON.stringify(messages[i])); 
     } 
      response.end(); 
    }).listen(8888); 

पुनश्च: यह भी देखें इस बारे में अधिक जानकारी के लिए नकल nodejs - http.createServer seems to call twice

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