function createNext(context) {
    return opts => {
        context.redirected = opts;
        if (!context.res) {
            return;
        }

        opts.query = stringify(opts.query);
        opts.path = opts.path + (opts.query ? '?' + opts.query : '');
        if (opts.path.indexOf('http') !== 0
            && opts.path.indexOf('/') !== 0
        ) {
            opts.path = urlJoin('/', opts.path);
        }
        // Avoid loop redirect
        if (opts.path === context.url) {
            context.redirected = false;
            return;
        }
        context.res.writeHead(opts.status, {
            Location: opts.path
        });
        context.res.end();
    };
}
create next

@param {*} context context
@return {Function}