javascript - 当所有参数都是可选的时,如何向 Node.js 中的 Web 服务 GET 方法添加验证?

标签 javascript node.js

我在 Node.js 的 Web 服务中有一个方法定义为:

app.get('/reports', function(req, res){

    var amount = req.param('amount');
    var longitude = req.param('long');
    var latitude = req.param('lat');
    var distance = req.param('distance');
    var numberOf = req.param('numberOf');

我想验证所有参数,所以我考虑为此添加一个特殊的方法,例如:

validateReports = function(req, res, next) {
    var latitude = req.params.latitude;
    var longitude = req.params.longitude;
    var distance = req.params.distance;
    var numberOf = req.params.numberOf;
    if (!isCorrectGPS(latitude)) {
        return res.status(406).send("Please send a valid latitude");
    }
  etc.

然后像这样添加它:

app.get('/reports', validateReports, function(req, res){

但是当参数是可选的时我不知道如何继续(例如,当用户调用 /reports 并且不提供它时 - 我不想向他显示任何错误)。你能告诉我具体的操作方法吗?

最佳答案

if (req.params.latitude && !isCorrectGPS(latitude)) {
  //do error stuff
}

关于javascript - 当所有参数都是可选的时,如何向 Node.js 中的 Web 服务 GET 方法添加验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35091591/

相关文章:

javascript - Node Firebird 顺序选择不起作用

javascript - 如何确保我发送邀请的电子邮件地址得到了回复。?

javascript - 查询 : Product between 2 lists of inputs into a 3rd list

node.js - 使用 Mongoose 处理 MongoDB 中查找、修改、保存流程的冲突

javascript - 在 Express 中包含库或外部样式表

javascript - 无法使用 API 从 Google 云端硬盘下载文件 - node.js

javascript - 密码不允许nodejs + mongodb

javascript - 在网络应用程序中处理事件跟踪的最佳(高性能)方法

javascript - CSS 子级宽度由光标在父级上的位置决定

javascript - 是否可以中止数据类型为 json 的 jquery $.ajax 请求?