最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

的NodeJS:数据变形金刚在Laravel的PHP框架喜欢

IT培训 admin 13浏览 0评论

的NodeJS:数据变形金刚在Laravel的PHP框架喜欢

我创建使用Laravel框架和基础上的Laracasts教程我的代码结构中的多个REST API项目。然而,我们决定使用移动作为的NodeJS后端的一些项目。我开始学习节点,我试图复制它的节点。我能做到这一点的烧毛物体响应,但对多个对象,我似乎无法使它发挥作用。

这里是我的控制器:

index(req,res) {
    User
      .findAll()
      .then(function(users){
        res.json(api.respond(transfomer.transformCollection(users)));
      })
      .catch(function(error){
        res.json(api.respondWithError('users not found',error));
      });
  }

API控制器:

module.exports = {

  // response w/o error
  respond: function(data,msg,status) {
    if (msg == null) {
      return {
        'status': status || true,
        'data': data
      };
    } else {
      return {
        'status': true,
        'message': msg,
        'data': data
      };
    }
  },

  // response with error
  respondWithError: function(msg,error) {
    var self = this;
    var status = false;
    var data = {
      'error': error
    };
    return this.respond(data,msg,status);
  },
};

transformer.js

module.exports = {

  // single transformation
  transform (user) {
    return {
      'id' : user.id,
      'username': user.username,
      'firstname': user.firstname,
      'lastname': user.lastname,
      'address': user.address,
      'phone': user.phone,
      'mobile': user.mobile,
      'status': user.status
    };
  },

  //
  transformCollection(users) {
    var self = this;
    var data = [];
    for (var i = 0; i <= users.length; i++) {
        data.push(this.transform(users[i]));
    }
    return data;
  }

};

样本输出

{
  "status": true,
  "data": [ 
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
  ]
}

对不起,问这是我与节点有点福利局。是否有可能实现这一输出作为我尝试不同的方法,但进出口仍然得到错误。顺便说一下我使用sequelize数据库。

谢谢。

回答如下:

您可以使用此:

let options = {raw: true, attributes: ['id', 'name', 'code', 'createdAt','updatedAt']};

    country.findAndCountAll(options).then(querySnapshot => {
        let total = querySnapshot.count;
        resolve({docs: querySnapshot.rows, total: total})  
    }).catch((err) => {
        reject(err)
    });

的NodeJS:数据变形金刚在Laravel的PHP框架喜欢

我创建使用Laravel框架和基础上的Laracasts教程我的代码结构中的多个REST API项目。然而,我们决定使用移动作为的NodeJS后端的一些项目。我开始学习节点,我试图复制它的节点。我能做到这一点的烧毛物体响应,但对多个对象,我似乎无法使它发挥作用。

这里是我的控制器:

index(req,res) {
    User
      .findAll()
      .then(function(users){
        res.json(api.respond(transfomer.transformCollection(users)));
      })
      .catch(function(error){
        res.json(api.respondWithError('users not found',error));
      });
  }

API控制器:

module.exports = {

  // response w/o error
  respond: function(data,msg,status) {
    if (msg == null) {
      return {
        'status': status || true,
        'data': data
      };
    } else {
      return {
        'status': true,
        'message': msg,
        'data': data
      };
    }
  },

  // response with error
  respondWithError: function(msg,error) {
    var self = this;
    var status = false;
    var data = {
      'error': error
    };
    return this.respond(data,msg,status);
  },
};

transformer.js

module.exports = {

  // single transformation
  transform (user) {
    return {
      'id' : user.id,
      'username': user.username,
      'firstname': user.firstname,
      'lastname': user.lastname,
      'address': user.address,
      'phone': user.phone,
      'mobile': user.mobile,
      'status': user.status
    };
  },

  //
  transformCollection(users) {
    var self = this;
    var data = [];
    for (var i = 0; i <= users.length; i++) {
        data.push(this.transform(users[i]));
    }
    return data;
  }

};

样本输出

{
  "status": true,
  "data": [ 
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
    {
        "id": 1,
        "username": "[email protected]",
        "firstname": "Jon",
        "lastname": "Doe",
        "address": "Homes",
        "phone": "+966501212121",
        "mobile": "+966501212121",
        "status": "NOT VERIFIED"
    },
  ]
}

对不起,问这是我与节点有点福利局。是否有可能实现这一输出作为我尝试不同的方法,但进出口仍然得到错误。顺便说一下我使用sequelize数据库。

谢谢。

回答如下:

您可以使用此:

let options = {raw: true, attributes: ['id', 'name', 'code', 'createdAt','updatedAt']};

    country.findAndCountAll(options).then(querySnapshot => {
        let total = querySnapshot.count;
        resolve({docs: querySnapshot.rows, total: total})  
    }).catch((err) => {
        reject(err)
    });
发布评论

评论列表 (0)

  1. 暂无评论