我一直在寻找一种方法来对 mongo 数据库进行各种操作,具体取决于用户在我的网站上连接到哪个路由。因此,对 www.mysite.com/data 执行 html-post 会将信息添加到 mongo DB,并且在同一 url 执行 html-get 将从同一数据库获取数据。我设法解决了这个问题,但是每次我用网站打开服务器时,我都会在 mongo 数据库中注册 5 个连接。为什么会这样,这很糟糕吗?
我的代码:
我在 mongo.js 中运行这段代码:
var mongodb = require('mongodb');
module.exports.init = function (callback) {
var server = new mongodb.Server("127.0.0.1", 27017, {});
new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
//export the client and maybe some collections as a shortcut
module.exports.client = client;
module.exports.myCollection = new mongodb.Collection(client, 'myCollection');
callback(error);
});
};
我初始化所有正在运行的东西(app.js):
/express set-up/
var mongo = require('./mongo.js');
/.../
mongo.init(function (error) {
if (error)
throw error;
app.listen(3000, function(){
console.log("Express server listening on port %d in %s mode",3000,
app.settings.env);
});
});
而且,例如,帖子看起来像(仍然是 app.js):
app.post('/App', function(req, res) {
users = users.concat(req.body);
res.redirect('/App');
//Add user to MongoDB
mongo.myCollection.insert({name: req.body.name, car: req.body.car, website: req.body.website, phone: req.body.phone}, {safe:true}, function(err, objects) {
if (err)
console.warn(err.message);
});
很确定我的重定向在这里也无法正常工作,但这是另一个问题。
关于为什么每次启动服务器时都会获得五个连接的任何建议?