2015-06-21 4 views
0

Я использую node.js для связи с mongodb-сервером. Отправка переменных и экспорт функции работают. Запись в БД не является, и я не могу найти ошибку. Это, как представляется, проблема с вкладышем, но я не могу найти его .....запись в mongodb fail/node.js

mongo.js

exports.InsertDocument = function InsertDocument(tblname, OutUser, OutEmail, OutDate) { 
    console.log("function InsertDocument called"); 
    console.log(tblname + OutUser + OutEmail + OutDate); 
    var document = {tablename:tblname, out_user:OutUser, out_email:OutEmail, out_date:OutDate }; 
    db.collection('movements').insert(document, function(err, results) { 
    if (err) throw err; 
    console.log("data saved"); 
    db.close(); 
    }); 
} 

index.js

/* POST home page. */ 
router.post('/create_movement', function(req, res) { 
    var tblname = req.body.tablename, 
     OutUser = req.body.out_user, 
     OutEmail = req.body.out_email, 
     OutDate = req.body.out_date; 
     mongo.InsertDocument(tblname, OutUser, OutEmail, OutDate); 
     res.send("succesfull"); 
}); 

узел .js console

Example app listening at http://:::3005 
Connection established to mongodb://localhost:27017/straff 
function InsertDocument called 
test234 
POST /create_movement 500 317.042 ms - 954 

из клиента отдыха

<!DOCTYPE html><html><head><title></title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>db is not defined</h1><h2></h2><pre>ReferenceError: db is not defined 
    at Object.InsertDocument (D:\test1\mongo.js:26:2) 
    at D:\test1\routes\index.js:17:9 
    at Layer.handle [as handle_request] (D:\test1\node_modules\express\lib\router\layer.js:82:5) 
    at next (D:\test1\node_modules\express\lib\router\route.js:110:13) 
    at Route.dispatch (D:\test1\node_modules\express\lib\router\route.js:91:3) 
    at Layer.handle [as handle_request] (D:\test1\node_modules\express\lib\router\layer.js:82:5) 
    at D:\test1\node_modules\express\lib\router\index.js:267:22 
    at Function.proto.process_params (D:\test1\node_modules\express\lib\router\index.js:321:12) 
    at next (D:\test1\node_modules\express\lib\router\index.js:261:10) 
    at Function.proto.handle (D:\test1\node_modules\express\lib\router\index.js:166:3)</pre></body></html> 
+0

Я думаю, вам нужно создать экземпляр 'db' в вашем ** файле mongo.js **. – theamateurdataanalyst

+0

Да, как и theamateurdataanalyst предлагает ... В этой области не существует переменной «db». Возможно, на вершине вашего mongo.js вам нужно что-то вроде: var db = something; –

+0

Я переключился на мангуст и получил его сейчас. спасибо всем – Piet

ответ

0

ошибка говорит вам все:

ReferenceError: db is not defined 
at Object.InsertDocument (D:\test1\mongo.js:26:2) 

Вы должны подключиться к базе данных, и добавить все детали в переменную под названием дб.

Использование Mongojs было бы как:

var mongojs = require('mongojs'); 
var db = mongojs(connectionString, [collections]); 

Вы должны проверить документацию для драйвера вашей помощи.

+0

Я переключился на мангуст и получил его сейчас. Спасибо вам всем – Piet

Смежные вопросы