如何与node.js一起使用sqlite3 – 什么是smt?

我想能够使用sqlite 3与node.js

我正在使用这里的代码,它完美的工作,但我真的不明白的代码。 例如:

var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { console.log(row.id + ": " + row.info); }); }); db.close(); 
  • 首先,我不明白什么样的stmt或它与smt.finalize做什么
  • (?)VALUES之后做什么(?)
  • 为什么要使用所有这些smt的东西,为什么不只是这样做:(它的工作原理我testing了它。) db.run("CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT)"); db.run("INSERT INTO user VALUES (1,\"manu\")"); db.run("CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT)"); db.run("INSERT INTO user VALUES (1,\"manu\")");

我希望我所有的问题都可以通过一个很好的文档链接来回答。

谢谢!

我想你是新来的sqlite3nodejs 。 variablesstmt只是一个variables,您可以将其更改为更像描述性的statementquery

(?)string更可能是variablesi的占位符。 所以你不会执行stmt.run()十次。 基本上它用stmt.run()的内容replace(?) ,所以它会像stmt.run('INSERT INTO lorem VALUES (Ipsum 1)') ,依此类推。

使用stmt.run('SQL QUERY HERE')很容易进行一个或几个操作。 但是,如果你需要迭代它,10000 stmt.run()似乎并不容易。

文档: https : //github.com/mapbox/node-sqlite3/wiki/API 。

  • 在后端应用程序中使用Webpack会降低性能吗?
  • JavaScript对象被推入到数组中作为参考
  • Ajax DELETE请求似乎只删除列表中的第一个项目
  • 如何缩短MongoDB的ObjectId并在Mongoose模式中使用它
  • Nodejs / Express – 启动我的应用程序:express.createServer()已弃用
  • 使用“导入”与节点库,而不是“要求”?
  • Node.js&Socket.io添加用户名
  • 如何从nodejs发送一个variables到所有连接的客户端?
  • Mongoose.js:通过用户名LIKE值查找用户
  • CORS的“Access-Control-Allow-Origin”值如何暴露给浏览器?
  • JavaScript和常量