1
我已經得到了Node.js服務器和Exressjs/Mongoose,我試圖在文檔中插入一些嵌入式文檔。下面是代碼:不能用Node.js和Mongoose插入到MongoDB
節點代碼:
app.post('/addcomment/:id', function(request, response){ var sys = require('util') , mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); Schema = mongoose.Schema; var CommentSchema = new Schema({ descr: String }); var IssuesSchema = new Schema({ name: String, comment: [CommentSchema] }); mongoose.model('tasks', IssuesSchema); var Issues = mongoose.model('tasks'); var taskid = request.params.id; var user = "test"; var comment = request.param('descr'); Issues.findOne({_id: taskid}, function(err,item) { item.comment.push({descr:comment, posteddate: posteddate, user: user}); item.save(); response.writeHead(200,{"Content-Type": "text/plain"}); response.write(JSON.stringify(t)); response.end(); });
});
從用下面的代碼一個jquery即時決策POST請求:
$.ajax({ type: 'POST', url: "http://myhost/addcomment/123", async: false, timeout: 5000, cache: false, data: { descr: $('#comment').val() } ,success: function(data){ console.log(data); ,error: function(){console.log("err")} });
當我使在節點控制檯POST請求有錯誤:不能調用未定義的方法「推動」 。在Chrome的同一點,請求仍處於「掛起」狀態。如果我再次啓動服務器(甚至在10秒後)請求「到達」並且記錄被插入,但是新會話和即時通訊無法獲取用戶名(這是我最初的想法)。 有人遇到過這種情況嗎?
謝謝! Stefan
非常感謝! (我剛剛開始使用node/mongo/express,但仍然有很多東西對我來說是不清潔的) – 2012-01-11 14:39:23
很高興能幫到你,可以在這裏用Node和Mongoose簽出一個真正的項目:https://github.com/alexyoung/nodepad它的教程在這裏:http://dailyjs.com/tags.html#lmawa – alessioalex 2012-01-11 15:11:09