nodejs:mongodb使用mondo db对象引用插入数据

时间:2016-12-05 14:57:14

标签: node.js mongodb

我是nodejs的新手:我想在db_mongo.js文件中建立连接并从另一个页面调用该文件并尝试插入..但它给出了

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1)

但是当我试图从" db_mongo"创建连接后,它正在那里工作。

var http = require('http'),
fs = require('fs'),
url = require('url');


// var db = require('../db');


var mongo = require( '../db_mongo' );


http.createServer(function(request, response){
var path = url.parse(request.url).pathname;
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
    var url_parts = url.parse(request.url, true);
    var query = url_parts.query;

var setval = {username: query.name, email: query.email, password: query.pass};
//     db.query('INSERT INTO users  SET ?', setval, function (err, res) {
//         if (err)
//             throw err;
//
// });


if (mongo) {console.log("mongo  connected here ss");}

var userCollection =   mongo.collection('users');

userCollection.insert((setval, function(err, result) {
    if(err) { throw err; }
    res.write("<p>Product inserted:</p>");
    res.end("<p>" + result[0].make + " " + result[0].model + "</p>");
}));


    // db.collection('users').insertOne( {
    //     username: query.name, email: query.email, password: query.pass
    // }, function(err, result) {
    //     assert.equal(err, null);
    //     console.log("Inserted a document into users");
    //     callback();
    // });
// };

// insertDocument(db, function() {
// });




}).listen(8001);

db_mongo

var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url_db = 'mongodb://localhost:27017/test';

module.exports = function(callback) {
    MongoClient.connect(url_db, callback);
};

1 个答案:

答案 0 :(得分:0)

您的模块db_mongo导出一个函数,而不是数据库实例。所以,要获得实例,你必须这样做

var mongo = require( '../db_mongo' )();  // if you don't care about callback

在上面的代码中,变量mongo只是对导出函数的引用。你无法对其进行mongo.collection('users')

试试这个,

require( '../db_mongo' )(function(err, db){
  if(err){
    //error handling
    return;
  }
  var userCollection = db.collection('users');
  // your code goes here
  db.close();
});

有关详细信息,请查看this输出