繁体   English   中英

REST API-节点,Express,MySQL-如何通过URL传递有限数量的对象来过滤JSON(从DB)返回

[英]REST API - Node, Express, MySQL - How can I filter a JSON (from DB) return by passing a limited number of objects via URL

我正在使用Node,Express,MySQL构建REST API。

当从http:// localhost:3000 / Node端点请求Node列表时,我希望将它们限制为仅25个初始记录。 这可以通过类似GET http:// localhost:3000 / Node?maxRecords = 25的请求来完成。

我的routes \\ Nodes文件是:

var express = require('express');
var router = express.Router();
var Node=require('../models/Node');

router.get('/:id?',function(req,res,next){

    if(req.params.id){
        Node.getNodeById(req.params.id,function(err,rows){

            if(err)
            {
                res.json(err);
            }
            else{
                res.json(rows);
            }
        });
    }

    else{
        Node.getAllNodes(function(err,rows){

            if(err)
            {
                res.json(err);
            }
            else
            {
                res.json(rows);
            }
        });
    }
});
module.exports=router;

在我的models \\ Node.js中(将查询传递给db)是:

var db=require('../dbconnection');

var Node={

    getAllNodes:function(callback){

        return db.query("Select * from node_link",callback);

    },
    getNodeById:function(id,callback){

        return db.query("select * from node_link where id=?",[id],callback);
    }

}
module.exports=Node;

在您的模型/Node.js中:

getAllNodes: function(maxRecords, callback) {

  return db.query("Select * from node_link LIMIT ?", [maxRecords], callback);

}

您可以在查询中使用LIMIT

http://www.mysqltutorial.org/mysql-limit.aspx

查询中的LIMIT属性会有所帮助,它将限制输出的行数。
因此,考虑到这一点,您的查询应如下所示:

SELECT * FROM node_link LIMIT 10

如果要增加行,只需将10增加任意数量即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM