Как сделать запрос к статическому ресурсу с параметрами? - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть сервер восстановления файла node.js и папка со статическим ресурсом

const restify = require('restify')

let server = restify.createServer()

server.listen(8080, function () {
    console.log('%s listening at %s', server.name, server.url)
});


server.get('/*', restify.plugins.serveStatic({
        directory: __dirname + '/static',
        default: 'index.html'
    }));

Я пытаюсь понять, как сделать запрос get на index.html с параметрами, такими как localhost: 8080 / index.html? token = 123

и, если токен действителен, верните index.html клиенту, иначе верните ошибку

1 Ответ

0 голосов
/ 15 января 2019

Вы можете объединить несколько обработчиков запросов и метод next() - сначала выполните проверку некоторых параметров, а затем, в качестве второго обработчика, используйте метод serveStatic.Вот пример:

const restify = require('restify')

let server = restify.createServer()

server.listen(8080, function () {
    console.log('%s listening at %s', server.name, server.url)
});


server.get('/*', (request, response, next) => {
    const token = request.query.token;
    if(token !== '123') {
        //those two lines below will stop your chain and just return 400 HTTP code with some message in JSON
        response.send(400, {message: "Wrong token"});
        next(false); 
        return;
    }
    next(); //this will jump to the second handler and serve your static file
    return;
},
restify.plugins.serveStatic({
    directory: __dirname + '/static',
    default: 'index.html'
}));
...