使用MongoJs和Node.JS来存储数据

时间:2014-07-10 16:44:42

标签: json mongodb mongojs

我已成功连接到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);
        }
    });
}

1 个答案:

答案 0 :(得分:0)

你尝试过这样的事吗?

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,以便可以从该数据中获取更多操作。

希望有所帮助!