MongoDB / NodeJS - вставка данных не увеличивает автоматически Object_ID - PullRequest
0 голосов
/ 15 июня 2011

Привет! Я новичок в Node.JS, MongoDB и Mongoose, поэтому, пожалуйста, прости меня, если мои вопросы наивны.

Я написал небольшой кусочек кода для асинхронной отправки данных из формы в базу данных и их последующего отображения на клиенте.

Вставки вроде рабочие.Каждый раз, когда я выполняю отправку формы, мои данные вставляются в БД, но каждый раз используются один и тот же ObjectID, что означает, что приращения по идентификатору документа не выполняются.

Есть ли что-то, что я делаю не так?Должен ли я вручную увеличивать ID или есть другой способ обработки объектов / вставок / и т.д.с этими технологиями.

Любая помощь очень ценится.Спасибо.

Код:

// Launch express and server
var express = require('express');
var app = express.createServer();

//connect to DB
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://127.0.0.1/napkin_v1');

//Configure Node w/ Dependencies
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(require("stylus").middleware({
      src: __dirname + "/public",
      dest: __dirname + "/public",
      compress: false
    }));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  //app.use(require('stylus').middleware({ src: __dirname + '/public' }));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});


// Define Schema for Message
var Schema = mongoose.Schema;

var messageSchema = new Schema({
    body: { type: String, index: { unique:true}},
    user: { type: String, index: { unique:true}},
    dateCreated: Date,
    tags: String
});

mongoose.model('Message', messageSchema);
var Message = mongoose.model('Message');

//Insert First Message into DB

var message = new Message();


app.get('/', function(req,res){
  Message.find(function(error, docs){
    res.render('layout.jade', {
      locals: {
        title: 'Napkin v0.111',
        messages: docs
      }
    });
  })
})

app.post('/', function(req,res){
  message.user = req.param('user');
  message.body = req.param('body');
  message.save(function() {
    res.redirect('/');
  });
});

//Launch Server
app.listen(3002);
console.log("Express server listening on port %d", app.address().port);

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Ваш экземпляр сообщения является глобальным, поэтому вы не создаете новые сообщения.Вам нужно сделать var message = new Message ();внутри корневого поста.

0 голосов
/ 16 июня 2011

Сразу после var Schema = mongoose.Schema, думаю, вам понадобится это var ObjectId = Schema.ObjectId;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...