节点orm2:不调用orm.connectcallback

我想用sqlite来试用节点orm2 。 我尝试了示例代码,并将mysql更改为sqlite。 它看起来像这样:

var orm = require("orm"); orm.connect('sqlite://D:/orm_test/database.db', function (err, db) { // ... }); 

我没有得到任何错误或警告。 只是没有发生。 callback没有被调用。

它不起作用,即使我以前创builddatabase.db

根据文档callback只有当连接成功(或不成功)…所以如果你的path是不正确的(出于任何原因,你的连接不明确不成功),也许没有callback?

如果直接监听connect事件,可以避免callback:

 var orm = require('orm'); var db = orm.connect('sqlite://D:/orm_test/database.db'); db.on('connect', function(err) { if (err) return console.error('Connection error: ' + err); // doSomething()... }); 

连接url如下所示:

 driver://username:password@hostname/database?option=value 

您可以使用debugging选项来打印查询到控制台,也许会有更多的信息?

编辑:
那么,我只是试图使用它,并做到这一点:

 // REQUIRES var express = require('express'); var app = express(); var orm = require("orm"); var sqlite3 = require('sqlite3'); // SERVER CONFIGURATION var port = 5050; // APP CONFIGURATION app.use(express.static('public')); app.use('/static', express.static(__dirname + '/public')); app.set('views', __dirname + '/views'); // ROUTES app.get('/', function(req, res){ orm.connect('sqlite://C:/Users/Me/Documents/Projects/test/database.db', function(err, db){ console.log('connected to this db : ' + JSON.stringify(db)); }); }); app.listen(port, function(){ console.info('Server successfully started, listening on port ' + port); }); 

它的工作原理… JSON.stringify显示控制台中的数据库对象的内容是什么。 你的代码看起来像这样吗?