У меня есть следующий код в файле: script.jsподключение к MongoDB вопрос
var express = require('express'),
app = express(),
cons = require('consolidate'),
MongoCl = require('mongodb').MongoClient,
Server = require('mongodb').Server;
app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname +'/views');
var mongoclient = new MongoCl(new Server('localhost', 27017, {'native_parser' : true}));
var db = mongoclient.db('course');
app.get('/', function (req,res) {
db.collection('hello_mongo_express').findOne({}, function (err, doc) {
res.render('hello',doc);
});
});
app.get('*', function (req,res) {
res.send('Page not found',404);
});
mongoclient.open(function (err, mongoclient) {
if(err) throw err;
var port = 8080;
app.listen(port);
console.log("Express server started on port "+port);
});
./views/hello.html выглядит как:
<h1>Hello, {{name}}</h1>
У меня есть действующий сбор в пределах db 'course'.
При попытке запуска с помощью узла, я сталкиваюсь следующий вопрос:
F:\mongo_proj>node script.js
F:\mongo_proj\script.js:11
var db = mongoclient.db('course');
^
TypeError: mongoclient.db is not a function
at Object.<anonymous> (F:\mongo_proj\script.js:11:22)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3
Несмотря на то, я думаю, весь код, который создает mongoclient, БД объектов, будет вызвана только тогда, когда подключение к БД было установлено. Так что может быть вопрос
редактировать: Я пытался @ предложение Джерри:
Если я переместить его, как что я получаю ошибка при открытом методе объекта монгольмента –
такая же ошибка? Можете ли вы убедиться, что сервер mongo запущен? Также вы можете следить за входом в журнал при запуске своего сервера – jerry
Я отредактировал этот вопрос с помощью вашего предложения o/p –