ノードは初めてで、ラズベリーパイで試しています。最新バージョンをインストールしました ( http://nodejs.org/dist/v0.9.9/node-v0.9.9-linux-arm-pi.tar.gz )
および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 は正常にコンパイルされました)。
ありがとう