您好:我是Node.JS,MongoDB和Mongoose的新手,如果我的问题很天真,请原谅我。
我写了一小段代码来异步地将数据从表单发送到数据库,然后在客户端上显示回来。
插入物有点工作。每次执行表单提交时,我的数据都会插入到DB中,但每次都使用相同的ObjectID,这意味着文档ID不会发生任何增量。
我有什么问题吗?我应该手动递增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);
答案 0 :(得分:1)
您的邮件实例是全局的,因此您不会创建新邮件。你需要做var message = new Message();在根帖子功能里面。
答案 1 :(得分:0)
在var Schema = mongoose.Schema
之后,我想你需要这个var ObjectId = Schema.ObjectId;