【问题标题】:Using MongoJs and Node.JS to store data使用 MongoJs 和 Node.JS 存储数据
【发布时间】:2014-07-11 05:00:25
【问题描述】:

我已成功连接到 MongoDb 并使用表单发送了一些数据。我现在想将数据存储在带有集合的 json 文档中。所以我目前的输出是:

{
    "_id": "53be957007d2c838083046a6",
    "subscriberinfo": "X",
    "grouporpolicynumber": "X",
    "title": "X",
    "clientnumber": "X",
    "xnumber": "X",
    "postedOn": "2014-07-10T13:30:24.499Z"
}

我希望它看起来像:

{
    "_id": "53be957007d2c838083046a6",
    "ReferenceInfo": {
          "subscriberinfo": "00003",
          "grouporpolicynumber": "Direct",
          "title": "SNP",
          "clientnumber": "VG00003M",
          "HICnumber": "264134187C"
                     }
    "postedOn": "2014-07-10T13:30:24.499Z"
}

当前代码如下所示:

   function postNewJob(req , res , next){
        var job = {};


    job.subscriberinfo              = req.params.subscriberinfo;
    job.grouporpolicynumber         = req.params.grouporpolicynumber;
    job.title                       = req.params.clientreportingcategory;
    job.clientnumber                = req.params.clientnumber;
    job.HICnumber                   = req.params.hicnumber;
    job.postedOn                    = new Date();

    res.setHeader('Access-Control-Allow-Origin','*');

    memberInfo.save(job , function(err , success){
        console.log('Response success '+success);
        console.log('Response error '+err);
        if(success){
            res.send(201 , job);
            return next();
        }else{
            return next(err);
        }
    });
}

【问题讨论】:

    标签: json mongodb mongojs


    【解决方案1】:

    你尝试过这样的事情吗?

    function postNewJob(req , res , next){
        var job = {
            referenceInfo: {
                subscriberinfo      : req.params.subscriberinfo,
                grouporpolicynumber : req.params.grouporpolicynumber,
                title               : req.params.clientreportingcategory,
                clientnumber        : req.params.clientnumber,
                HICnumber           : req.params.hicnumber
            },
            postedOn: new Date();
        };
    
        res.setHeader('Access-Control-Allow-Origin','*');
    
        memberInfo.save(job, function(err, job){
            if(err) {
                console.error('Response error ' + err);
                next(err);
            } else {
                console.log('Response success ' + job);
                res.send(201, job);
                next(req, res);
            }
        });
    }
    

    另外,我改变了你传入保存的回调函数。 Mongo 将调用该函数,传入错误和数据(本例中的数据是作业),这允许您根据保存状态有条件地记录错误或成功。此外,因为这些是异步函数,所以返回 next() 的调用实际上不会影响代码。此外,在调用 next() 时,建议传递之前的 req 和 res,以便可以从该数据中执行更多操作。

    希望有帮助!

    【讨论】:

    • 效果很好!!谢谢你的帮助!。顺便说一句,您更喜欢 mongojs 还是 Mongoose 来与 Mongo DB 交互?
    • 太棒了!很高兴它对你有用!我通常使用猫鼬——它提供了一些额外的功能,使查询更容易,但它还需要您为数据库指定模式。总的来说,我认为 mongoose 确实让 mongo 更容易交互。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多