Я использую 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);
}
Затем я получил сообщение об ошибке, как показано на рисунке ниже:
В каком это указывает, что объект, который я отправил обратно, получил пустое поле _id
.
Как разместить класс ts без поля _id
, или я должен делать это совершенно по-другому?