2017-02-08 5 views
0

Я пытаюсь вставить данные в базу данных mongodb.Вставить данные пользователя в базу данных mongodb

Я могу представить пользовательские данные и отобразить его с ...

app.get('/process_get', function (req, res) { 
    response = { 
     first_name:req.query.firstName, 
     last_name:req.query.lastName, 
     username:req.query.userName, 
     password:req.query.password, 
     email:req.query.email 
    }; 
    console.log(response); 
    res.end(JSON.stringify(response)); 
}) 

Затем я открыл связь с MongoDB и создал «тест» коллекция успешно ...

MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) { 
    if(err) { return console.dir(err); } 
    if(!err) { console.log("MongoDB server is connected!") } 

    var collection = db.collection('test'); 
}) 

Я попробовал «collection.insert ({name: req.query.firstName}); , но это явно не сработало, потому что нет «req». Как сделать входы глобальными , чтобы я мог просто вставить их?

ответ

0

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

//Setup Server and connect to mongoDB 
var app = require('express')(); 
var mongoose = require('mongoose'); 
mongoose.Promise = require('bluebird'); 
mongoose.connect('mongodb://localhost:27017/exampleDb'); 

//Create the model 
var testSchema = mongoose.Schema({ 
    .. 
}); 
var Test = mongoose.model('test', testSchema); 

//Now use the model to save the object in the route controller 
app.get('/process_get', function (req, res) { 
    response = { 
    .. //build the object based on some input or pas req.body directly 
    }; 
    console.log(response); 
    new Test(response).save().then(function(result) { 
    res.end(JSON.stringify(result)); 
    }); 
}); 

NB! Вы должны разделить эту логику в разных файлах, чтобы упростить работу над проектом. Единственная причина, по которой я должен иметь все это в одном файле, - удалить сложность.

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