UNPKG

appjs

Version:

AppJS is a SDK on top of nodejs to develop desktop applications using HTML/CSS/JS

92 lines (77 loc) 1.72 kB
/*! * Influenced by Connect - bodyParser * Copyright(c) 2010 Sencha Inc. * Copyright(c) 2011 TJ Holowaychuk * Copyright(c) 2012 AppJS * MIT Licensed */ /** * Module dependencies. */ var qs = require('querystring'); /** * Extract the mime type from the given request's * _Content-Type_ header. * * @param {IncomingMessage} req * @return {String} * @api private */ function mime(req) { var str = req.headers['Content-Type'] || ''; return str.split(';')[0]; } exports.parse = function Parse(req) { if (req.body) return; req.body = {}; if ('get' == req.method || 'head' == req.method) return; var parser = exports.parsers[mime(req)]; if (parser) { parser(req); } } /** * Parsers. */ exports.parsers = {}; /** * Parse application/x-www-form-urlencoded. */ exports.parsers['application/x-www-form-urlencoded'] = function(req){ try { req.post = req.body = req.post.length ? qs.parse(req.post) : {}; } catch (err){ // TODO ? console.log("[AppJS] couldn't parse x-www-form-urlencoded"); } }; /** * Parse application/json. */ exports.parse['application/json'] = function(req){ try { req.post = req.body = req.post.length ? JSON.parse(req.post) : {}; } catch (err){ console.log("[AppJS] couldn't parse application/json"); } }; /** * Parse multipart/form-data. * * Note: Is it OK to use this function with the assumption * that CEF pre-parse files and extract them from post data? */ exports.parse['multipart/form-data'] = function(req){ try { req.post = req.body = req.post.length ? qs.parse(req.post) : {}; } catch (err){ // TODO ? console.log("[AppJS] couldn't parse form-data"); } };