2013-03-26 22 views
0

我是新來的節點,並試圖在我的覆盆子pi。 我已經安裝了最新版本(http://nodejs.org/dist/v0.9.9/node-v0.9.9-linux-arm-pi.tar.gznode.js和sqlite3的網絡應用程序,損壞的未分類塊:/

和NPM安裝的sqlite3(製作安裝過)

現在我試圖運行下面的代碼:

var http = require("http"); 
var sqlite3 = require("sqlite3").verbose(); 
var port = 1337; 
var ip = "192.168.2.15"; 

http.createServer(function (req, res) { 
    res.writeHead(200, {"Content-Type": "text/plain"}); 

    var db = new sqlite3.Database(":memory:"); 

    db.serialize(function() { 
     db.run("CREATE TABLE lorem (info TEXT)"); 
     console.log("CREATE"); 
     var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); 
     for (var i = 0; i < 10; i++) { 
      stmt.run("Ipsum " + i); 
     } 
     stmt.finalize(); 
     console.log("START SELECT ["); 
     db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { 
      console.log(row.id + ": " + row.info); 
     }); 
     console.log("] END SELECT"); 
    }); 
    console.log("CLOSE"); 

    db.close(); 

    res.end("Hello World."); 

}).listen(port, ip); 

console.log("Server running at http://" + ip + ":" + port); 

我得到的輸出是:

Server running at http://192.168.2.15:1337 
CREATE 
START SELECT [ 
] END SELECT 
CLOSE 
1: Ipsum 0 
2: Ipsum 1 
3: Ipsum 2 
4: Ipsum 3 
5: Ipsum 4 
6: Ipsum 5 
7: Ipsum 6 
8: Ipsum 7 
9: Ipsum 8 
10: Ipsum 9 
*** glibc detected *** node: free(): corrupted unsorted chunks: 0x0072fe28 *** 
Aborted 

我的假設是乙醚我,即使我使用db.serialize或這樣的比賽條件不會對PI工作(雖然sqlite3的那樣編譯正常)

感謝

+0

它看起來像一個已知的問題:https://github.com/developmentseed/node-sqlite3/issues/126由於它提出的問題始於節點0.10,您可能會恢復到一箇舊版本的節點(0.8.x),直到問題解決。 – robertklep 2013-03-27 08:10:05

+0

謝謝,我使用的是0.9.9,但我會嘗試更早的版本,看看它是如何發展的。 – mikernz 2013-03-27 08:53:39

+1

是的,你是對的!我降級到0.8.17(http://nodejs.org/dist/v0.8.17/node-v0.8.17-linux-arm-pi.tar.gz),它很甜蜜。謝謝! – mikernz 2013-03-28 00:35:20

回答

0

我最近遇到了這個問題。我意識到我沒有使用穩定/推薦的node.js版本。通過降級到0.8.15來解決