2014-02-19 2 views
1

Я пытаюсь вставить некоторые данные в мой mongodb с nodejs всякий раз, когда вызывается сокет. Вот код:Вставка в mongodb с nodejs

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; 
      }); 
     }) 
    }) 
}) 

Однако всякий раз, когда я иду в Монго консоль и введите

db.chat.find() 

Я не могу найти вставленную запись. Я уверен, что у меня открыт mongod, и я уверен, что сокет испущен. Кроме того, consoloe.log перед вставкой работает.

Вот мой клиент Монго

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

Моя консоль, которая запускает сервер nodejs не регистрирует любую ошибку.

+0

Внутри 'db.collection ("чат"). Вставить callback' попытаться немедленно выборки одни и те же данные. После этого мы можем получить больше информации, чтобы думать. – Pranav

+0

Итак, если это не работает «console.log (data.name +», а содержимое: «+ data.content);» О чем тебе это говорит? –

+1

Он сказал: ... ** ** ** работа. ;-) – heinob

ответ

2

Вы должны указать имя базы данных (здесь: myDatabase) и номер порта (для безопасности).

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

При поиске записи в попытке Монго оболочки:

use myDatabase 
db.chat.find() 
+0

Угадайте, что это не проблема. Подсказка: «Кроме того, console.log перед вставкой действительно работает». –

0

Вы забыли включить номер порта и базы данных MongoDB,

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

Порт не нужен, если он не зависит от значения по умолчанию 27017 –

0

попробуйте этот код

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) 
{ 

});

0

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");

+3

Добавьте некоторое объяснение, это будет лучше, чем просто фрагмент кода. – Billa

Смежные вопросы