Использование MongoJs и Node.JS для хранения данных

Я успешно подключился к 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 ответ

Вы пробовали что-то подобное?

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 из ранее, чтобы можно было выполнить больше действий с этими данными.

Надеюсь, это поможет!

Другие вопросы по тегам