Theo tài liệu gọi lại chỉ được gọi khi kết nối được thực hiện thành công (hoặc thất bại) ... Vì vậy, nếu con đường của bạn là không chính xác (ví bất kỳ lý do gì, và kết nối của bạn KHÔNG rõ ràng không thành công), có thể không có gọi lại?
Bạn có thể tránh gọi lại nếu bạn nghe cho sự kiện kết nối trực tiếp như thế này:
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 kết nối như:
driver://username:[email protected]/database?option=value
Bạn có thể sử dụng tùy chọn gỡ lỗi để in các truy vấn vào giao diện điều khiển, có thể sẽ có thêm thông tin?
EDIT:
Vâng, tôi chỉ cố gắng sử dụng nó và đã làm điều đó:
// 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);
});
Và nó hoạt động ... JSON.stringify cho thấy nội dung của DB Object trong giao diện điều khiển là gì. Mã của bạn có giống như thế này không?
tôi nghi ngờ bạn nên sử dụng chế độ đối tượng tốt hơn để xác định chuỗi kết nối của bạn [xem] (https://github.com/dresende/node-orm2/blob/master/lib/ORM.js#L74). Nếu tôi chạy 'url.parse ('sqlite: // D: \\ orm_test \\ database.db', true);', nó là loại xấu xí. Điều kỳ lạ là bạn nói cb không được gọi. Điều này sẽ được báo cáo là lỗi. –
Bạn đã cài đặt 'npm sqlite' chưa? – Shaharyar
tất nhiên tôi đã làm –