Tôi đang thực sự bối rối về cách kết nối với MongoLab trên Heroku. Để kết nối bằng cách sử dụng uri để Heroku, tôi đã cố gắng để làm theo ví dụ này: http://experiencecraftsmanship.wordpress.com/2012/01/06/heroku-node-js-mongodb-featuring-the-native-driver/Làm cách nào để sử dụng nút-mongodb-native để kết nối với Heroku?
Tôi nhìn cả hai web.js và deep.js. mình Cả hai đều làm một cái gì đó như:
connect.createServer(
require('connect-jsonrpc')(contacts)
).listen(port);
Nhưng sau đó chỉ truy vấn cơ sở dữ liệu trong 'địa chỉ liên lạc' được thông qua vào máy chủ này sau đó? Tôi có được phép thực hiện nhiều connect.createServer cho mỗi phương thức truy cập cơ sở dữ liệu của mình không?
Sau đây là một phần mã của tôi khi chỉ kết nối với MongoDB cục bộ. Tôi không chắc chắn về cách sửa đổi nó để kết nối với MongoLab trên Heroku.
Ai đó có thể dạy tôi cách sửa đổi mã của tôi để kết nối không? Hoặc giải thích một số khái niệm này? Tôi không biết tại sao tác giả của trang web tôi đăng lại sử dụng quá nhiều callback để thực hiện cuộc gọi cơ sở dữ liệu, khi cách tiếp cận của tôi dưới đây có vẻ đơn giản (tôi mới sử dụng JavaScript, không tốt với callback).
var app = module.exports = express.createServer(
form({ keepExtensions: true })
);
var Db = require('mongodb').Db;
var Server = require('mongodb').Server;
var client = new Db('blog', new Server('127.0.0.1', 27017, {}));
var posts;
var getAllPosts = function(err, collection) {
collection.find().toArray(function(err, results) {
posts = results;
console.log(results);
client.close();
});
}
app.get('/', function(req, response) {
client.open(function(err, pClient) {
client.collection('posts', getAllPosts);
});
// some code
response.render('layout', { posts: posts, title: 'Raymond', contentPage: 'blog' });
});
Tôi đã nhìn vào ví dụ mà. Tôi có thể gọi connect.createServer (...) nhiều lần không? Bởi vì tôi xác định nhiều điểm cuối url yêu cầu quyền truy cập vào cơ sở dữ liệu. Tôi cũng không chắc chắn làm thế nào để vượt qua các thông số của riêng tôi từ các tham số url. –
Bạn không cần tạoServer cho mọi điểm cuối url. Để xử lý các hoạt động cơ sở dữ liệu, bạn có thể tạo một loại Nhà cung cấp. Xem ví dụ về ["ArticleProvider" trên blog hướng dẫn-nút] (http://howtonode.org/express-mongodb) –