Mongodb mongoskin插入两条记录,而不是一条
我是新来的,刚到mongo等等,我有一个奇怪的问题需要帮助 我已经创建了一个app.js文件,我正在与node一起运行。它侦听web请求并调用函数,使用mongoskin驱动程序将记录写入mongodb。它可以正常工作,但出于某种原因,它在mongodb中插入了两条记录,而不是一条 我意识到代码不是一个好的设计,目前它是硬编码的,因为我只是想了解它在这个阶段是如何结合在一起工作的。总之,下面是我的app.js中的代码:Mongodb mongoskin插入两条记录,而不是一条,mongodb,mongoskin,Mongodb,Mongoskin,我是新来的,刚到mongo等等,我有一个奇怪的问题需要帮助 我已经创建了一个app.js文件,我正在与node一起运行。它侦听web请求并调用函数,使用mongoskin驱动程序将记录写入mongodb。它可以正常工作,但出于某种原因,它在mongodb中插入了两条记录,而不是一条 我意识到代码不是一个好的设计,目前它是硬编码的,因为我只是想了解它在这个阶段是如何结合在一起工作的。总之,下面是我的app.js中的代码: var http = require('http'); http.creat
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end( hello() );
}).listen(3000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3000/');
function hello()
{
// test mongodb and mongoskin driver
var msg = "";
var db = require('mongoskin').db('localhost:27017/mydb');
db.collection('users').insert({site: "test.com", email: "fredbloggs@gmail.com", firstname: "Fred", lastname: "Bloggs", password: "hello"},
function(err, result) {
if (err) msg = "fail";
if (result) msg="success";
});
return msg;
}
我在最初的安装中遇到了一些问题,不知道我是否安装了两次mongo或者类似的东西?两个mongo实例是否可能接收到我的请求并指向同一个数据库?可能有点脆弱,但任何帮助都将不胜感激
非常感谢
Kelly。因为您才刚刚开始,所以您可能想和mongoskin合作,而不是mongoskin。或者至少用它来测试你的配置。Mongoskin是基于本机驱动程序构建的,两者都在积极开发中,因此很容易受到版本倾斜问题的影响。一旦您熟悉本机驱动程序,并且需要未来模式的便利性,那么您应该能够轻松地切换到mongoskin。您好,下面是驱动程序的简单用法和示例。请注意,我们使用MongoClient连接到db一次,现在对web服务器的每个请求都将重用连接池
var http = require('http');
, MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:27017/mydb", function(err, db) {
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
hello(res);
}).listen(3000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3000/');
function hello(res) {
// test mongodb and mongoskin driver
db.collection('users').insert({
site: "test.com"
, email: "fredbloggs@gmail.com"
, firstname: "Fred"
, lastname: "Bloggs"
, password: "hello" }, function(err, result) {
var msg;
if(err) msg = "fail";
if(result) msg="success";
res.end(msg);
});
}
})
(我知道是老帖子)。如果您是从web浏览器访问服务器,那么第二个请求可能是favicon?由于您不区分请求,请检查浏览器中的“网络”选项卡,您可能会看到它正在发送2个请求。