【发布时间】:2014-06-08 07:38:27
【问题描述】:
我是 mongoDB 的新手,我目前正在使用 Node express 服务器设置它。我想知道如何管理对 mongodb 的并发请求,以使用 mongoose 驱动模块读取集合数据。
例如:
如果有 100 个用户同时访问我的服务器 (http://xxxxxx.com/showusers),express 服务器中的 mongodb 连接将如何工作?是单个连接还是拆分为 100 个连接,每个请求一个?
操作后如何有效关闭mongodb中的连接对象?或者我们可以像下面的代码那样将连接留在快递服务器中吗?
下面是我的代码..
服务器.js
var express = require('express');
var app = express();
app.set('port', config.port);
app.get('/users',storeusersapi.showUsers);
app.get('/storeUser',storeusersapi._insertUserDetails);
app.get('/findUser/:email',storeusersapi._findUser);
app.listen(app.get('port'),function(){
log.info('Express app started on port ' + app.get('port'));
});
storeusersapi.js
var mongoose = require('mongoose');
var log = require('../config/logger');
// Mongoose connection to MongoDB (ted/ted is readonly)
mongoose.connect('mongodb://localhost/mydb', function (error) {
if (error) {
log.error("MongoDB Connection failure - " +error);
}else{
log.info('MongoDB is connected Successfully!!!');
}
});
// Mongoose Schema definition
var Schema = mongoose.Schema;
var UserSchema = new Schema({
first_name: String,
last_name: String,
email: String
});
// Mongoose Model definition
var User = mongoose.model('users', UserSchema);
exports.showUsers = function(req,res){
User.find({}, function (err, docs) {
res.json(docs);
});
};
exports._insertUserDetails = function(req,res){
var object = new User({first_name:'bob',last_name:'sel',email:'sel@xxxxx.com'});
object.save(function (err) {
if (err) {
log.error('Insertion error - '+ err);
}
else {
log.info("User Stored into database!!!");
}
});
};
exports._findUser = function(req,res){
User.find({ email: req.params.email }, function (err, docs) {
res.json(docs);
});
};
【问题讨论】:
-
你有没有得到什么??
标签: node.js mongodb express mongoose mean-stack