(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
'use strict';
var replace = String.prototype.replace;
var percentTwenties = /%20/g;
var Format = {
RFC1738: 'RFC1738',
RFC3986: 'RFC3986'
};
module.exports = {
'default': Format.RFC3986,
formatters: {
RFC1738: function (value) {
return replace.call(value, percentTwenties, '+');
},
RFC3986: function (value) {
return String(value);
}
},
RFC1738: Format.RFC1738,
RFC3986: Format.RFC3986
};
},{}],2:[function(require,module,exports){
'use strict';
var stringify = require('./stringify');
var parse = require('./parse');
var formats = require('./formats');
module.exports = {
formats: formats,
parse: parse,
stringify: stringify
};
},{"./formats":1,"./parse":3,"./stringify":4}],3:[function(require,module,exports){
'use strict';
var utils = require('./utils');
var has = Object.prototype.hasOwnProperty;
var isArray = Array.isArray;
var defaults = {
allowDots: false,
allowPrototypes: false,
allowSparse: false,
arrayLimit: 20,
charset: 'utf-8',
charsetSentinel: false,
comma: false,
decoder: utils.decode,
delimiter: '&',
depth: 5,
ignoreQueryPrefix: false,
interpretNumericEntities: false,
parameterLimit: 1000,
parseArrays: true,
plainObjects: false,
strictNullHandling: false
};
var interpretNumericEntities = function (str) {
return str.replace(/&#(\d+);/g, function ($0, numberStr) {
return String.fromCharCode(parseInt(numberStr, 10));
});
};
var parseArrayValue = function (val, options) {
if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {
return val.split(',');
}
return val;
};
// This is what browsers will submit when the ✓ character occurs in an
// application/x-www-form-urlencoded body and the encoding of the page containing
// the form is iso-8859-1, or when the submitted form has an accept-charset
// attribute of iso-8859-1. Presumably also with other charsets that do not contain
// the ✓ character, such as us-ascii.
var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')
// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
var parseValues = function parseQueryStringValues(str, options) {
var obj = {};
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
var parts = cleanStr.split(options.delimiter, limit);
var skipIndex = -1; // Keep track of where the utf8 sentinel was found
var i;
var charset = options.charset;
if (options.charsetSentinel) {
for (i = 0; i < parts.length; ++i) {
if (parts[i].indexOf('utf8=') === 0) {
if (parts[i] === charsetSentinel) {
charset = 'utf-8';
} else if (parts[i] === isoSentinel) {
charset = 'iso-8859-1';
}
skipIndex = i;
i = parts.length; // The eslint settings do not allow break;
}
}
}
for (i = 0; i < parts.length; ++i) {
if (i === skipIndex) {
continue;
}
var part = parts[i];
var bracketEqualsPos = part.indexOf(']=');
var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
var key, val;
if (pos === -1) {
key = options.decoder(part, defaults.decoder, charset, 'key');
val = options.strictNullHandling ? null : '';
} else {
key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
val = utils.maybeMap(
parseArrayValue(part.slice(pos + 1), options),
function (encodedVal) {
return options.decoder(encodedVal, defaults.decoder, charset, 'value');
}
);
}
if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
val = interpretNumericEntities(val);
}
if (part.indexOf('[]=') > -1) {
val = isArray(val) ? [val] : val;
}
if (has.call(obj, key)) {
obj[key] = utils.combine(obj[key], val);
} else {
obj[key] = val;
}
}
return obj;
};
var parseObject = function (chain, val, options, valuesParsed) {
var leaf = valuesParsed ? val : parseArrayValue(val, options);
for (var i = chain.length - 1; i >= 0; --i) {
var obj;
var root = chain[i];
if (root === '[]' && options.parseArrays) {
obj = [].concat(leaf);
} else {
obj = options.plainObjects ? Object.create(null) : {};
var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
var index = parseInt(cleanRoot, 10);
if (!options.parseArrays && cleanRoot === '') {
obj = { 0: leaf };
} else if (
!isNaN(index)
&& root !== cleanRoot
&& String(index) === cleanRoot
&& index >= 0
&& (options.parseArrays && index <= options.arrayLimit)
) {
obj = [];
obj[index] = leaf;
} else if (cleanRoot !== '__proto__') {
obj[cleanRoot] = leaf;
}
}
leaf = obj;
}
return leaf;
};
var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
if (!givenKey) {
return;
}
// Transform dot notation to bracket notation
var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
// The regex chunks
var brackets = /(\[[^[\]]*])/;
var child = /(\[[^[\]]*])/g;
// Get the parent
var segment = options.depth > 0 && brackets.exec(key);
var parent = segment ? key.slice(0, segment.index) : key;
// Stash the parent if it exists
var keys = [];
if (parent) {
// If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
if (!options.plainObjects && has.call(Object.prototype, parent)) {
if (!options.allowPrototypes) {
return;
}
}
keys.push(parent);
}
// Loop through children appending to the array until we hit depth
var i = 0;
while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
i += 1;
if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
if (!options.allowPrototypes) {
return;
}
}
keys.push(segment[1]);
}
// If there's a remainder, just add whatever is left
if (segment) {
keys.push('[' + key.slice(segment.index) + ']');
}
return parseObject(keys, val
没有合适的资源?快使用搜索试试~ 我知道了~
基于Express框架的多个JavaScript/TypeScript项目设计源码
共422个文件
js:160个
json:81个
md:60个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 128 浏览量
2024-09-26
09:15:25
上传
评论
收藏 1.85MB ZIP 举报
温馨提示
该项目是一个基于Express框架的综合性JavaScript/TypeScript项目设计源码,总计包含481个文件,涵盖160个JavaScript文件、121个Markdown文件、81个JSON文件、15个ESLint配置文件、15个YAML文件、11个npm配置文件、7个TypeScript文件,以及其他各类配置和资源文件。此项目结构清晰,适用于快速开发和部署Express应用程序。
资源推荐
资源详情
资源评论
收起资源包目录
基于Express框架的多个JavaScript/TypeScript项目设计源码 (422个子文件)
mime.cmd 299B
.editorconfig 569B
.eslintignore 10B
.eslintignore 10B
.eslintrc 1KB
.eslintrc 1KB
.eslintrc 603B
.eslintrc 404B
.eslintrc 291B
.eslintrc 253B
.eslintrc 224B
.eslintrc 208B
.eslintrc 180B
.eslintrc 176B
.eslintrc 173B
.eslintrc 172B
.eslintrc 164B
.eslintrc 43B
.eslintrc 43B
qs.js 68KB
parse.js 35KB
stringify.js 34KB
sbcs-data-generated.js 31KB
response.js 27KB
index.js 23KB
dbcs-codec.js 21KB
ipaddr.js 19KB
index.js 18KB
tests.js 15KB
index.js 15KB
application.js 14KB
index.js 13KB
request.js 12KB
index.js 11KB
index.js 10KB
index.js 10KB
stringify.js 10KB
ipaddr.min.js 10KB
parse.js 9KB
utf7.js 9KB
index.js 9KB
GetIntrinsic.js 9KB
extend-node.js 8KB
dbcs-data.js 8KB
values.js 7KB
index.js 7KB
utils.js 7KB
index.js 7KB
indent-option.js 6KB
index.js 6KB
index.js 6KB
internal.js 6KB
node.js 6KB
index.js 6KB
utils.js 6KB
urlencoded.js 6KB
index.js 5KB
mediaType.js 5KB
index.js 5KB
index.js 5KB
index.js 5KB
utils.js 5KB
json.js 5KB
utf16.js 5KB
index.js 5KB
inspect.js 5KB
browser.js 5KB
sbcs-data.js 5KB
index.js 4KB
index.js 4KB
debug.js 4KB
read.js 4KB
route.js 4KB
index.js 4KB
index.js 4KB
index.js 4KB
index.js 4KB
encoding.js 3KB
language.js 3KB
index.js 3KB
streams.js 3KB
index.js 3KB
view.js 3KB
layer.js 3KB
charset.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
mime.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
index.js 2KB
index.js 2KB
express.js 2KB
callBound.js 2KB
test.js 2KB
共 422 条
- 1
- 2
- 3
- 4
- 5
资源评论
xyq2024
- 粉丝: 2956
- 资源: 5569
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Yakit-1.0.12-sp7-windows-amd64.zip
- 基于python+tkinter实现学籍管理系统的设计与开发(简单版)
- 软件测试05-测试方法-判定表法+因果图法+正交实验法
- C语言程序设计(第5版)习题解答-第5章 原创代码
- 基于dqn的燃料电池混合动力汽车能量管理策略 1.研究对象为燃料电池-动力电池混合动力汽车 2.基于dqn算法,分配燃料电池和动力电池的功率输出 3.状态量为soc,控制量为燃料电池输出功率
- 改进A星算法路径规划+A星算法 通过修改距离更新公式,增加动态权重,效果有一定提升,与原算法对比结果如下,如果地图更加复杂效果提升应该可以更明显
- C语言程序设计(第5版)习题解答-第4章 原创代码
- win32汇编环境,对话框程序画弓形弦
- 21改进平均网损系数法 基于改进平均网损系数法的线损分摊方法,程序通用,可根据需求改进,加好友,可提供matlab和python版本
- 煤层气开采热力流(thm)耦合案列讲解
- Qiankunqiankun前端微应用独立部署,兼容所有技术栈
- 煤与瓦斯气固耦合模型案列分析讲解
- 基于simulink的扩频通信系统,有蚊子描述
- 基于python实现一个简单的学生信息管理系统
- 大数据lzo压缩库,可直接使用
- 自适应扩展、无迹卡尔曼滤波算法估计锂电池soc代码及模型
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功