Узел orm2: обратный вызов orm.connect не вызывается
Я хотел бы попробовать узел orm2, с sqlite. Я попробовал пример кода и изменил mysql на sqlite. Это выглядит так:
var orm = require("orm");
orm.connect('sqlite://D:/orm_test/database.db', function (err, db) {
// ...
});
Я не получаю никакой ошибки или предупреждения. Просто ничего не происходит. Обратный вызов не вызывается вообще.
Это не работает, даже если я создаю database.db
до
1 ответ
Согласно документации, обратный вызов вызывается только тогда, когда соединение установлено успешно (или неудачно)... Так что, если ваш путь неверен (по какой-либо причине, и ваше соединение НЕ является явно неудачным), может быть, обратного вызова нет?
Вы можете избежать обратного вызова, если вы слушаете событие подключения напрямую, как это:
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
Вы можете использовать опцию отладки для печати запросов в консоли, может быть, будет больше информации?
РЕДАКТИРОВАТЬ:
Ну, я просто попытался использовать это и сделал это:
// 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 показывает, каково содержание DB Object в консоли. Ваш код выглядит так?