【问题标题】:Inserting in mongodb with nodejs使用nodejs插入mongodb
【发布时间】:2014-02-19 09:27:02
【问题描述】:

每当发出套接字时,我都会尝试使用 nodejs 在我的 mongodb 中插入一些数据。代码如下:

io.sockets.on( "connection",function( socket ){
    socket.on( "send", function( data ) {
        console.log(data.name + " and the content is: " + data.content);
        mongodb.connect( "mongodb://127.0.0.1", function( err, db ) {
            if(err) throw err;
            var to_be_inserted = {name: data.name,content: data.content};
            db.collection("chat").insert(to_be_inserted,function(err,objects){
                if(err) throw err;
            });
        })
    })
})

但是每当我去我的 mongo 控制台并输入

db.chat.find() 

我找不到插入的记录。我确定我已经打开了 mongod,并且我确定套接字已发出。此外,插入之前的 consoloe.log 确实有效。

这是我的 mongo 客户端

var mongodb = require("mongodb").MongoClient;

我的运行 nodejs 服务器的控制台没有记录任何错误。

【问题讨论】:

  • db.collection("chat").insert callback 内尝试立即获取相同的数据。在那之后,我们可能会得到更多的思考。
  • 因此,如果这不起作用“console.log(data.name +”并且内容为:“+ data.content);”这告诉你什么?
  • 他说:...**确实**有效。 ;-)

标签: node.js mongodb socket.io


【解决方案1】:

您应该指定一个数据库名称(这里:myDatabase)和一个端口号(为了安全起见)。

mongodb.connect("mongodb://127.0.0.1:27017/myDatabase", function( err, db ) {

在 mongo shell 中搜索记录时尝试:

use myDatabase
db.chat.find()

【讨论】:

  • 猜这不是问题。提示:“此外,插入之前的 console.log 确实有效。”
【解决方案2】:

你忘了包括mongodb的端口号和数据库,

MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if (err) throw err;
console.log("Connected to Database");
}

【讨论】:

  • 不需要端口,除非它不同于默认的 27017
【解决方案3】:

试试这个代码

    var MongoClient=require('mongodb').MongoClient;
var Server=require('mongodb').Server;
var mongoc=new MongoClient(new Server("localhost",27017));
mongoc.open(function(err)
    {

    db.collection(<collection_name>).insert(<query>,function(err,result)
{

});

【讨论】:

    【解决方案4】:

    const http = require('http');
    const hostname = '127.0.0.1';
    const port = 8081;
    var express = require("express");
    var bodyParser = require('body-parser');
    var app = express();
    var MongoClient = require('mongodb').MongoClient;
       var url = "mongodb://localhost:27017";
    
    
    app.use(bodyParser.json());
    
    app.get('/get', function (req, res) {
      res.send('Hello World')
    })
    
    var data = {
      title: 'my title',
      content: 'my content'
    };
    // This responds a POST request for the homepage
    app.post('/say/:userid', function (req, res) {
     
       var queryParameter=JSON.stringify(req.query);
       res.send('Hello POST'+req.params.userid+""+queryParameter);
    })
    
    app.post('/insert', function (req, res) {
     
       console.log(req.body);
       res.send('Hello POST'+JSON.stringify(req.body));
     /*   var MongoClient = require('mongodb').MongoClient;
       var url = "mongodb://localhost:27017"; */
      MongoClient.connect(url, function(err, db) {
      if (err) throw err;
     var dbase = db.db("mydb");
      var myobj = { name: JSON.stringify(req.body.name), address:JSON.stringify(req.body.address) };
      dbase.collection("student").insertOne(myobj, function(err, res) {
        if (err) throw err;
        console.log("1 document inserted");

    【讨论】:

    • 添加一些解释它会比只是一段代码更好。
    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2014-02-12
    • 2017-04-20
    相关资源
    最近更新 更多