【问题标题】:nodejs how to pass Date from service to Express APInodejs如何将日期从服务传递到Express API
【发布时间】:2023-04-05 19:07:01
【问题描述】:

我的服务中有以下代码:

var currentDate = new Date();


return this._authHttp
  .get(
    `localhost:3000/listJobs?filter={"where": {"expireDate":{"$gte": new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDay())}}}`
  )
  .map((res: Response) => res.json())
  .catch(this.handleError);

还有我的 API:

module.exports.listJobs = (req, res) => {
   var queryFilter = {};

   let condition = {};
   if (req.query.filter) {
     queryFilter = JSON.parse(req.query.filter);
   }
   if (queryFilter.where) {
     condition = queryFilter.where;
   }



    myCollection.find(condition).exec(function (err, result) {
    if (err) {
      sendJsonResponse(res, 400, err);
    } else {
      sendJsonResponse(res, 200, result);
    }
  });
};

我想要做的是:拥有一个通用 API 路由来支持动态查询过滤器,假设在另一种情况下,我的服务中有另一个函数将不同的过滤器传递给同一路由。 我想知道的是我们如何通过ObjectId(), new Date(), etc...

【问题讨论】:

    标签: node.js mongodb express mongoose mean-stack


    【解决方案1】:

    也许,尝试发送一个具有过滤器属性的对象。
    如果我理解正确,您使用 Angular 2 编写客户端部分。
    示例:

    let params: URLSearchParams = objToSearchParams(obj);
    
     return this.http.get('url', {
       search: params
     }).subscribe(
       (response) => //some manipulation with response 
     );
    
     function objToSearchParams(obj): URLSearchParams{
        let params: URLSearchParams = new URLSearchParams();
        for (var key in obj) {
            if (obj.hasOwnProperty(key))
                params.set(key, obj[key]);
        }
        return params;
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-30
      • 2019-08-14
      • 2023-04-09
      • 2021-11-15
      • 2020-04-29
      • 1970-01-01
      • 2014-09-24
      • 2017-08-26
      相关资源
      最近更新 更多