【问题标题】:Post TypeScript Object without '_id' field?发布没有“_id”字段的 TypeScript 对象?
【发布时间】:2017-01-27 06:31:48
【问题描述】:

我使用 Express、Mongoose 和 Angular 2 (TypeScript) 制作网络应用程序。现在我想发布一个没有任何_id 字段的MyClass 实例。

在 mongoose 中,我们可以使用 _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

在我的 Angular 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 字段。

如何发布没有 _id 字段的 ts 类,还是应该完全不同?

【问题讨论】:

    标签: mongodb express angular typescript mongoose


    【解决方案1】:

    由于没有人给出答案,我上网找到了一个很好的例子,说明如何实现 Angular2 -- Mongoose -- Express 系统。

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

    官方教程中原始英雄应用程序的一个很好的例子。虽然它基于 RC1,但它为如何正确执行 RESTFUL 请求提供了一个很好的起点。

    希望这对正在寻找类似答案的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 2022-01-24
      • 2023-03-14
      • 1970-01-01
      • 2012-03-24
      • 2016-09-25
      • 2017-10-17
      • 2015-01-30
      • 1970-01-01
      相关资源
      最近更新 更多