Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用express检查资源是否存在的最佳方法_Node.js_Express_Routes - Fatal编程技术网

Node.js 使用express检查资源是否存在的最佳方法

Node.js 使用express检查资源是否存在的最佳方法,node.js,express,routes,Node.js,Express,Routes,假设您已经创建了有效资源列表 const resources = ["foo", "bar"]; 您的url路径是 router.get("/resource/:resourceID" ( req, res, next ) => { //code here res.send("something") } ); 检查资源是否有效的最佳方法是什么? 我是否对每个GET、POST、PUT和DELETE进行检查?这看起来很不整洁,当然有更好的方法。你可以使用中间件,在

假设您已经创建了有效资源列表

const  resources = ["foo", "bar"];
您的url路径是

router.get("/resource/:resourceID" ( req, res, next ) => {
    //code here
    res.send("something")    
} );
检查资源是否有效的最佳方法是什么? 我是否对每个GET、POST、PUT和DELETE进行检查?这看起来很不整洁,当然有更好的方法。

你可以使用中间件,在那里进行检查

app.param('resourceID', function (req, res, next, id) {
    if (resources.indexOf(id) > -1) {
        return next();
    }
    next(new Error('failed to load resource'));
});
您可以使用中间件并在那里进行检查,例如

app.param('resourceID', function (req, res, next, id) {
    if (resources.indexOf(id) > -1) {
        return next();
    }
    next(new Error('failed to load resource'));
});

您可以使用中间件并在那里进行检查,例如,
app.param('resourceID',checkResourceID)
@Mikey谢谢您将此添加为答案,我不知道这是否是最好的方法,但似乎比检查每个HTTP方法要好得多,除非有更好的答案,否则你也可以得到一个绿色的勾号。你可以使用中间件,然后在那里进行检查,例如,
app.param('resourceID',checkResourceID)
@Mikey谢谢。作为回答,我不知道这是否是最好的方法,但似乎比检查每个HTTP方法都好,除非有更好的答案,否则你也可以得到一个绿色的勾号。我打算使用数组。一些但被选中,indexOf更快。我打算使用数组。一些但被选中,indexOf更快