Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb mongoskin插入两条记录,而不是一条_Mongodb_Mongoskin - Fatal编程技术网

Mongodb mongoskin插入两条记录,而不是一条

Mongodb mongoskin插入两条记录,而不是一条,mongodb,mongoskin,Mongodb,Mongoskin,我是新来的,刚到mongo等等,我有一个奇怪的问题需要帮助 我已经创建了一个app.js文件,我正在与node一起运行。它侦听web请求并调用函数,使用mongoskin驱动程序将记录写入mongodb。它可以正常工作,但出于某种原因,它在mongodb中插入了两条记录,而不是一条 我意识到代码不是一个好的设计,目前它是硬编码的,因为我只是想了解它在这个阶段是如何结合在一起工作的。总之,下面是我的app.js中的代码: var http = require('http'); http.creat

我是新来的,刚到mongo等等,我有一个奇怪的问题需要帮助

我已经创建了一个app.js文件,我正在与node一起运行。它侦听web请求并调用函数,使用mongoskin驱动程序将记录写入mongodb。它可以正常工作,但出于某种原因,它在mongodb中插入了两条记录,而不是一条

我意识到代码不是一个好的设计,目前它是硬编码的,因为我只是想了解它在这个阶段是如何结合在一起工作的。总之,下面是我的app.js中的代码:

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个请求。