2012-07-30 13 views
10
unknown406c8f2d5ecb:proves airrider3$ node tronServer.js 
[Error: dlopen(/Users/airrider3/Documents/proves/node_modules/now/node_modules/node-proxy/build/Release/nodeproxy.node, 1): no suitable image found. Did find: 
    /Users/airrider3/Documents/proves/node_modules/now/node_modules/node-proxy/build/Release/nodeproxy.node: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00] 
Error: dlopen(/Users/airrider3/Documents/proves/node_modules/now/node_modules/node-proxy/build/Release/nodeproxy.node, 1): no suitable image found. Did find: 
    /Users/airrider3/Documents/proves/node_modules/now/node_modules/node-proxy/build/Release/nodeproxy.node: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 
    at Object.Module._extensions..node (module.js:485:11) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at Object.<anonymous> (/Users/airrider3/Documents/proves/node_modules/now/node_modules/node-proxy/lib/node-proxy.js:1:90) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 

यह लिनक्स में पूरी तरह से काम करता है। मैंने अभी इस सर्वर स्क्रिप्ट को चलाने के लिए nodejs, nowjs, आदि स्थापित किया है, लेकिन यह इस त्रुटि को फेंकता रहता है।मैक पर एक नोडजेस सर्वर चलाने में त्रुटि, 'कोई उपयुक्त छवि नहीं मिली'

कोई विचार?

सर्वर कोड: (यह एक ट्रोन मल्टीप्लेयर खेल की तरह)

var html = require('fs').readFileSync(__dirname + '/tronMultiplayer.html'); 
var server = require('http').createServer(function (req, res) { 
    res.end(html); 
}); 
server.listen(8004); 

var nowjs = require('now'); 
var everyone = nowjs.initialize(server); 

var bikes = {}; 
var killCount = {}; 
var player = 0; 

var EMPTY = -1; 
var WALL = -2; 

var map = []; 
var edge = 100; 

var count = 0; 
var deadbikes = 0; 

var gameON = false; 




function resetGame() { 

    map = []; 
    for (var i = 0; i < edge; i++){ 
     map.push([]); 
     for (var j = 0; j < edge; j++){ 
      if (i == 0 || j == 0 || i == edge-1 || j == edge-1/* || Math.floor(Math.random()*30) == 0*/){ 
       map[i].push(WALL); 
      } else { 
       map[i].push(EMPTY); 
      } 
     } 
    } 

    for (var i in bikes){ 
     spawnBike(i) 
    } 
    everyone.now.reset(edge); 
    everyone.now.updateScores(bikes); 
} 

nowjs.on('connect', function() { 
    console.log('connect'); 
    bikes[this.user.clientId] = {nick: "Anonymous", w:0, i: Math.floor(Math.random()*edge-2)+1, j: Math.floor(Math.random()*edge-2)+1, di : 0, dj : 1, p: player, c: "rgba("+Math.floor(Math.random()*255)+ ", " + Math.floor(Math.random()*255)+","+Math.floor(Math.random()*255)+", 1)", alive : false}; 
    killCount[this.user.clientId] = 0; 
    player++; 
    console.log(this.user.clientId); 
    console.log(bikes); 
    if (!gameON){ 
    gameON = true; 
    resetGame(); 
    step(); 
    } 
}); 

everyone.now.changeBikeDirection = function (dir) { 
    console.log(bikes[this.user.clientId].nick + " changes his direction to " + dir); 
    var ndi = 0, ndj = 0; 
    if (dir == "left"){ 
     ndj = -1; 
    } else if (dir == "right"){ 
     ndj = 1; 
    } else if (dir == "up"){ 
     ndi = -1; 
    } else if (dir == "down"){ 
     ndi = 1; 
    } 
    var odi, odj; 
    odi = bikes[this.user.clientId].di; 
    odj = bikes[this.user.clientId].dj; 

    if (odi != ndi && odj != ndj) { 
     bikes[this.user.clientId].di = ndi; 
     bikes[this.user.clientId].dj = ndj; 
    } 
    killCount[this.user.clientId] = 0; 
}; 

everyone.now.updateNickname = function (theName) { 
    bikes[this.user.clientId].nick = theName; 
    everyone.now.updateScores(bikes); 
}; 

function spawnBike (k) { 
    bikes[k].i = Math.floor(Math.random()*edge*(2/4) -2)+1 + edge/4; 
    bikes[k].j = Math.floor(Math.random()*edge*(2/4) -2)+1 + edge/4; 
    bikes[k].di = 0; 
    bikes[k].dj = 1; 
    bikes[k].alive = true; 
    player++; 
} 

nowjs.on('disconnect', function() { 
    console.log(bikes[this.user.clientId].nick + ' has disconnected.'); 
    for (var i in bikes) { 
     if (i === this.user.clientId) { 
     killBike(i); 
    delete bikes[i]; 
     break; 
     } 
    } 
}); 

function killBike(k){ 
     var bike = bikes[k]; 
    bike.alive = false; 
    for (var i = 0; i < edge; i++){ 
     for (var j = 0; j < edge; j++){ 
      if (map[i][j] == bike.player){ 
       map[i][j] = EMPTY; 
      } 
     } 
    } 
    //delete bikes[k]; 
} 

function checkIfBikeIsDead(k){ 
     //console.log("CheckIfBikeIsDead with id "+k); 
    var bike = bikes[k]; 
    if (bike.alive){ 
     //console.log("Checking current position"); 
     if (map[bike.i][bike.j] != EMPTY){ 
      //console.log("Ouch, Cell was "+map[bike.i][bike.j]); 
      bike.i -= bike.di; 
      bike.j -= bike.dj; 
      killBike(k); 

      for (var i in bikes){ 
       if (i != k){ 
        if (bikes[i].alive){ 
         bikes[i].w++; 
        } 
       } 
      } 
      everyone.now.updateScores(bikes);   
      return true; 
     } else { 
      //console.log("Safe and sound"); 
      map[bike.i][bike.j] = bike.p; 
      return false; 
     } 
    } else { 
     return false; 
    } 

} 

function traceMap() { 
    console.log("---------------------------------------------------------------------"); 
    var s = ""; 
    for (var i = 0; i < edge; i++){ 
     s = "["; 
     for (var j = 0; j < edge; j++){ 
      if (map[i][j] == undefined){ 
       console.log("We found an undefined at ("+i+","+j+")"); 
      } else { 
       s += map[i][j].toString() + ", "; 
      } 
     } 
     s += "]"; 
     console.log(s); 
    } 
} 

function step() { 

    count = 0; 
    deadbikes = 0; 

    for (var k in bikes){ 
     killCount[k]++; 
     if (killCount[k] > 2000){ 
      killBike(k); 
      delete bikes[k]; 
     } else { 
      count++; 
      if (bikes[k].alive){ 
       bikes[k].i += bikes[k].di; 
       bikes[k].j += bikes[k].dj; 
       if (checkIfBikeIsDead(k)){ 
        deadbikes++; 
       } 
      } else { 
       deadbikes++; 
      } 
     } 
    } 

    if (count > 0){ 
     if (count == deadbikes){ 
     resetGame(); 
     } 
     setTimeout(step, 50); 
     everyone.now.receiveNewPositions(bikes); 
    // traceMap(); 
    } else { 
     gameON = false; 
    } 


} 

उत्तर

21

कोई बात नहीं। Facepalm। मेरे पास node_modules फ़ोल्डर वही था जो मैंने लिनक्स में उपयोग/स्थापित किया था, इसलिए मेरा मानना ​​है कि कुछ हिस्सों को विशेष रूप से लिनक्स, या जो भी हो, के लिए संकलित किया गया था।

node_modules फ़ोल्डर को मिटाने और पुनर्स्थापित करने के द्वारा हल किया गया।

मुझे उम्मीद है कि यह किसी भी संदेह के साथ किसी को भी मदद करता है!

+0

मुझे एक ही समस्या है ... आपने प्रत्येक मॉड्यूल को मैक संस्करण के साथ पुनर्स्थापित किया है, सही? तो क्या आपके नोड प्रोजेक्ट में node_modules फ़ोल्डर नहीं था, बस उन्हें वैश्विक मैक इंस्टॉल से उपयोग किया गया था? – Gady

+2

मैंने इस परियोजना के लिए वैश्विक मैक इंस्टॉल का उपयोग नहीं किया था (मुझे यह भी पता नहीं था कि यह तब अस्तित्व में था ...)। मैंने अभी परियोजना के समान रूट में मॉड्यूल स्थापित किए हैं, और यह काम करता है। मुझे आशा है कि आप अपनी समस्या का समाधान करेंगे! –

+0

मैं, भी, आपके जवाब पढ़ने के बाद facepalmed ... +2! –

7

डेविड दा सिल्वा कंटिन का जवाब महान है!

$ sudo rm -rf node_modules/ 
$ npm install 
+0

मामूली चिमटा - 'git rm -rf node_modules' :) – Andbdrew

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