我是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);
};
答案 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输出