2011-12-12 195 views
2

當我試圖在UNIX下的Node.js運行,收到此錯誤dooing說:node.js的錯誤:ENOSYS產卵執行命令行命令

var exec = require('child_process').exec; 

var commandLine = "/var/util/generate 300 300 > /tmp/barcode.png"; 
var childProcess; 

http.createServer(function (req, res) { 

var request = url.parse(req.url, true); 
var action = request.pathname; 

if (action == '/barcode.png') { 

    console.log('executes commandLine'); 

    // executes 'commandLine' 
    childProcess = exec(commandLine, 
     function (error, stdout, stderr) { 
      sys.print('stdout: ' + stdout); 
      sys.print('stderr: ' + stderr); 
      var img = fs.readFileSync('/tmp/barcode.png'); 
      res.writeHead(200, { 
       'Content-Type' : 'image/png' 
      }); 
      res.end(img, 'binary'); 
      if (error !== null) { 
       console.log('exec error: ' + error); 
      } 
     }); 
} else { 
    res.writeHead(200, { 
     'Content-Type' : 'text/plain' 
    }); 
    res.end('QR Generate service reply: Please provide correct request parameter \n'); 
    }  
}).listen(8888); 

的console.log(「QR生成服務運行在http://localhost:8888「);

但我發現了:

Error: ENOSYS spawn 
    at errnoException (child_process.js:476:11) 
    at ChildProcess.spawn (child_process.js:443:11) 
    at child_process.js:341:9 
    at Object.execFile (child_process.js:250:15) 
    at child_process.js:217:18 
    at Server.<anonymous> (/base/usr/node/service.js:139:18) 
    at Server.emit (events.js:70:17) 
    at HTTPParser.onIncoming (http.js:1479:12) 
    at HTTPParser.onHeadersComplete (http.js:102:31) 
    at Socket.ondata (http.js:1375:22) 

當它擊中EXEC(

什麼是錯的

節點的版本是0.6.4

+0

你可以運行'/ var/util/generate 300 300> /tmp/barcode.png'在命令行中成功? – alessioalex

+0

是的,它的工作原理。它會在/ tmp中創建正確的文件 –

回答

0

沒有爲沒有解決辦法?我的問題,它是在一個不支持產卵服務期的平臺上執行的。