2016-09-19 2 views
0

Я использую Express, Mongoose и Angular 2 (TypeScript), создавая веб-приложение. Теперь я хочу опубликовать MyClass экземпляр без поля _id.Создать объект TypeScript без поля «_id»?

В мангусте мы могли бы использовать _id делать много операций по MongoDB, так вот что я сделал на стороне сервера с помощью mongoose

router.post('/', function(req, res, next) { 
    Package.create(req.body, function (err, post) { 
    if (err) return next(err); 
     res.json(post); 
    }); 
}); 


/* GET /package/id */ 
router.get('/:id', function(req, res, next) { 
    Package.findById(req.params.id, function (err, post) { 
    if (err) return next(err); 
    res.json(post); 
    }); 
}); 

/* PUT /package/:id */ 
router.put('/:id', function(req, res, next) { 
    Package.findByIdAndUpdate(req.params.id, req.body, function (err, post, after) { 
    if (err) return next(err); 

    res.json(post); 
    }); 
}); 

Содержать поле _id я создал класс TS, как это:

export class Package{ 


    constructor(
     public guid: string, 
     ... 
     [other fields] 
     ... 
     public _id: string 
    ){} 

} 

Пожалуйста, обратите внимание на _id в конце.

В моей угловой 2 службы Я делаю это, чтобы разместить объект JSON на сервер

//create new pakcage 
    private post(pck: Package): Promise<Package> { 
     let headers = new Headers({ 
      'Content-Type': 'application/json' 
     }); 

     return this.http 
      .post(this.packageUrl, JSON.stringify(pck), { headers: headers }) 
      .toPromise() 
      .then(res => res.json()) 
      .catch(this.handleError); 

    } 

Затем я получил сообщение об ошибке, как показано на рисунке ниже:

enter image description here

В каком это указывает, что объект, который я отправил обратно, получил пустое поле _id.

Как разместить класс ts без поля _id, или я должен делать это совершенно по-другому?

ответ

0

Поскольку никто не дал ответа, я пошел в Интернет и нашел хороший пример того, как реализовать систему Angular2 - Mongoose - Express.

https://github.com/moizKachwala/Angular2-express-mongoose-gulp-node-typescript

Очень хороший пример с оригинальным Hero App из официального руководства. Хотя он основан на RC1, но он дает хорошую отправную точку в том, как правильно выполнять запрос RESTFUL.

Надеюсь, это поможет кому-то, кто ищет аналогичный ответ.

Смежные вопросы