diff --git a/lib/PHPExpress/engine.js b/lib/PHPExpress/engine.js index d0846a8..536c76d 100644 --- a/lib/PHPExpress/engine.js +++ b/lib/PHPExpress/engine.js @@ -14,13 +14,18 @@ var engine = function (filePath, opts, callback) { query = opts.query || querystring.stringify(get), body = opts.body || querystring.stringify(post), + server = opts.server || {}, env = { REQUEST_METHOD: method, CONTENT_LENGTH: body.length, - QUERY_STRING: query + QUERY_STRING: query, }; + Object.keys(server).forEach(key => { + env[key] = server[key] + }); + var command = util.format( '%s %s %s %s', (body ? util.format('echo "%s" | ', body) : '') + binPath, diff --git a/lib/PHPExpress/router.js b/lib/PHPExpress/router.js index 90e4d7e..e1e7e82 100644 --- a/lib/PHPExpress/router.js +++ b/lib/PHPExpress/router.js @@ -2,6 +2,9 @@ module.exports = function(req, res) { res.render(req.path.slice(1), { method: req.method, get: req.query, - post: req.body + post: req.body, + server: { + REQUEST_URI: req.url + } }); -}; \ No newline at end of file +}; diff --git a/page_runner.php b/page_runner.php index 1568c0c..43c8f53 100644 --- a/page_runner.php +++ b/page_runner.php @@ -1,15 +1,22 @@ 0)) - { - parse_str(fread(STDIN, $_SERVER['CONTENT_LENGTH']), $_POST); - } +//parse the standard input into the $_POST variable +if (($REQUEST_METHOD === 'POST') + && ($CONTENT_LENGTH > 0) +) { + parse_str(fread(STDIN, $CONTENT_LENGTH), $_POST); +} - chdir($argv[1]); - require_once $argv[2]; +chdir($argv[1]); +require_once $argv[2];