gpt4 book ai didi

jquery - 无法使用 Node.js 和 Mongoose 插入 MongoDB

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:56 25 4
gpt4 key购买 nike

我有 Node.js 服务器和 Exressjs/Mongoose,我试图将一些嵌入文档插入到文档中。这是代码:

  • Node 代码:

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

当我在 Node 控制台中发出 POST 请求时,出现错误:无法调用未定义的方法“push”。与此同时,Chrome 中的请求仍处于“待处理”状态。如果我再次启动服务器(即使在 10 秒后),请求“到达”并且记录被插入,但使用新 session ,我无法获取用户名(这是我最初的想法)。有人遇到过这种情况吗?

谢谢!斯特凡

最佳答案

您确实应该将包含与 mongoose 的连接的代码以及架构定义放在路由回调之外。目前,您将重新连接到 mongoose 并重新定义每个页面请求的所有架构。

因此以下代码应保留在路由回调之外:

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

关于jquery - 无法使用 Node.js 和 Mongoose 插入 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8820481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com