2016-09-13 19 views
10

Tôi muốn dùng thử node orm2, với sqlite. Tôi đã thử mã ví dụ và thay đổi mysql thành sqlite. Có vẻ như sau:Nút hoặc m2: orm.connect gọi lại không được gọi là

var orm = require("orm"); 

orm.connect('sqlite://D:/orm_test/database.db', function (err, db) { 

    // ... 

}); 

Tôi không nhận được bất kỳ lỗi hoặc cảnh báo nào. Chỉ là không có gì xảy ra. Gọi lại không được gọi là ở tất cả.

Nó không làm việc, ngay cả khi tôi tạo database.db trước

+0

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. –

+0

Bạn đã cài đặt 'npm sqlite' chưa? – Shaharyar

+0

tất nhiên tôi đã làm –

Trả lời

1

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?

+0

Vẫn không có gì. 'on ('connect', ...' callback không bao giờ được gọi là –

+0

Tùy chọn debug = true có in gì đó không? – Aethyn

Các vấn đề liên quan