From 97e1a6202e6250bc1c2b45cf51bbe227880fdab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81=E6=BC=8F=E6=B4=9E?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=8C=E6=88=90?= <> Date: Wed, 14 May 2025 09:25:32 +0800 Subject: [PATCH] first commit --- .gitignore | 20 + server_demo/apiRouter.js | 82 +++ server_demo/oracle.js | 0 server_demo/package-lock.json | 1171 +++++++++++++++++++++++++++++++ server_demo/package.json | 20 + server_demo/public/images/1.jpg | Bin 0 -> 92928 bytes server_demo/router.js | 18 + server_demo/server.js | 86 +++ 8 files changed, 1397 insertions(+) create mode 100644 server_demo/apiRouter.js create mode 100644 server_demo/oracle.js create mode 100644 server_demo/package-lock.json create mode 100644 server_demo/package.json create mode 100755 server_demo/public/images/1.jpg create mode 100644 server_demo/router.js create mode 100644 server_demo/server.js diff --git a/.gitignore b/.gitignore index ceaea36..3463a42 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,26 @@ yarn-error.log* lerna-debug.log* .pnpm-debug.log* +target/ +/target +/target/* +/.idea/* +/.idea +.idea/* +.idea +.idea/ +.idea/workspace.xml +/server_demo/.idea +server_demo/.idea +/server_demo/.idea/* +server_demo/.idea/* +/server_demo/node_modules/* +server_demo/node_modules/* + + + +/server_demo/.idea +server_demo/.idea # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json diff --git a/server_demo/apiRouter.js b/server_demo/apiRouter.js new file mode 100644 index 0000000..dc19188 --- /dev/null +++ b/server_demo/apiRouter.js @@ -0,0 +1,82 @@ +//16.apiRouter.js +const express = require('express') + + +const router = express.Router() + + +const oracledb = require('oracledb'); +const connectionString = "system/452131wW@192.168.3.29:1521/orcl"; // 替换为实际的用户名、密码、主机名、端口号和数据库名 + +// 设置数据库连接参数 +const config = { + user: 'system', + password: '452131wW', + connectString : "192.168.3.29:1521/orcl" // 或者直接使用 'hostname:port/sid' +}; + +async function run() { + let connection; + + try { + // 获取数据库连接 + connection = await oracledb.getConnection(config); + console.log('Connection established.'); + + // 执行查询 + const result = await connection.execute('SELECT * FROM TYPE'); + console.log(result.rows); // 输出查询结果 + } catch (err) { + console.error(err); + } finally { + if (connection) { + // 关闭数据库连接 + try { + await connection.close(); + console.log('Connection closed.'); + } catch (err) { + console.error(err); + } + } + } +} + + + + +// 在这里挂载对应的路由 +router.get('/get', (req, res) => { + // 通过 req.query 获取客户端发送到服务器的数据(查询字符串) + const query = req.query + + run().then(r => {console.log("调用oracle")}) + + + + // 调用 res.send() 方法,向客户端响应处理的结果 + res.send({ + status: 0,// 0 表示处理成功,1 表示处理失败 + msg: 'GRT请求成功', // 状态的描述 + data: query// 需要响应给客户端的数据 + }) +}) + + +router.post('/post', (req, res) => { + // 通过 req.body 获取请求体中包含的 url-encoded 格式的数据 + const body = req.body + res.send({ + status: 1, + msg: 'POST请求成功', + data: body + }) +}) + +router.delete('/delete', (req, res) => { + res.send({ + status: 0, + msg: 'DELETE请求成功', + }) +}) + +module.exports = router diff --git a/server_demo/oracle.js b/server_demo/oracle.js new file mode 100644 index 0000000..e69de29 diff --git a/server_demo/package-lock.json b/server_demo/package-lock.json new file mode 100644 index 0000000..3298116 --- /dev/null +++ b/server_demo/package-lock.json @@ -0,0 +1,1171 @@ +{ + "name": "server_demo", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "server_demo", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.5", + "express": "^5.1.0", + "nodemon": "^3.1.10", + "oracledb": "^5.5.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", + "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/oracledb": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/oracledb/-/oracledb-5.5.0.tgz", + "integrity": "sha512-i5cPvMENpZP8nnqptB6l0pjiOyySj1IISkbM4Hr3yZEDdANo2eezarwZb9NQ8fTh5pRjmgpZdSyIbnn9N3AENw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.16" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + } + } +} diff --git a/server_demo/package.json b/server_demo/package.json new file mode 100644 index 0000000..6331b74 --- /dev/null +++ b/server_demo/package.json @@ -0,0 +1,20 @@ +{ + "name": "server_demo", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "nodemon server.js", + "start1": "nodemon --ext js,html,css server.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "cors": "^2.8.5", + "express": "^5.1.0", + "nodemon": "^3.1.10", + "oracledb": "^5.5.0" + } +} diff --git a/server_demo/public/images/1.jpg b/server_demo/public/images/1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8be2c4dacabe11113a5d04d0be6ee4868b9b62ad GIT binary patch literal 92928 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 GHUHWDhaPMI literal 0 HcmV?d00001 diff --git a/server_demo/router.js b/server_demo/router.js new file mode 100644 index 0000000..fce63a3 --- /dev/null +++ b/server_demo/router.js @@ -0,0 +1,18 @@ +//03.router.js +//1.导入express +const express = require('express') + +//2.创建路由对象 +const router = express.Router() + +//3.挂载具体路由 +router.get('/user/list', (req, res) => { + res.send('Get user list') +}) + +router.post('/user/add', (req, res) => { + res.send('Add new user') +}) + +//4.向外导出路由对象 +module.exports = router diff --git a/server_demo/server.js b/server_demo/server.js new file mode 100644 index 0000000..77c6870 --- /dev/null +++ b/server_demo/server.js @@ -0,0 +1,86 @@ +//1.导入express +const express = require('express'); + +//2.创建web服务器 +const app = express(); +//const cors = require(‘cors’) + + +//3. 启动服务器 +app.listen(8081, () => { + console.log('express server running at http://127.0.0.1:8081'); +}) + +//app.use(cors()) + +//4 +//4.监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容 + +// 2.Express 路由 +// 在 Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。 +// +// 2.1 Express路由组成 +// Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数 + + +app.get('/user', (req, res) => { + //调用 express 提供的 res.send() 方法,向客户端响应一个文本字符串 + res.send({ name: 'zs', age: 20, gender: '男' }) +}) + +app.post('/userpost', (req, res) => { + res.send('请求成功') +}) + +app.get('/age', (req, res) => { + //调用 express 提供的 res.send() 方法,向客户端响应一个文本字符串 + console.log(req.query); + res.send(req.query) +}) + +app.get('/user/:id/:username', (req, res) => { + res.send(req.params) + console.log(req.params); +}) + +app.use(express.static('public')) +app.use(express.static('files')) + +// 挂载路径前缀 +// 如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下的方式: +app.use('/pub', express.static('pub')) + + +// 2.3 模块化路由 +// 为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app 上, +// 而是推荐将路由抽离为单独的模块。 + +//1.导入路由模块 +const router = require('./router.js') +//2. 注册路由模块 +app.use(router) + +// 导入路由模块 +const apiRouter = require('./apiRouter.js') +// 把路由模块,注册到 app 上 +app.use('/api', apiRouter) + +// 7. CORS 跨域资源共享 +// 解决接口跨域问题的方案主要有两种: +// +// CORS(主流的解决方案,推荐使用) +// JSONP(有缺陷的解决方案:只支持 GET 请求) +// 7.1 使用 cors 中间件解决跨域问题 +// cors 是 Express 的一个第三方中间件。通过安装和配置 cors 中间件,可以很方便地解决跨域问题。 +// 使用步骤分为如下 3 步: +// +// 运行 npm install cors 安装中间件 +// 使用 const cors = require(‘cors’) 导入中间件 +// 在路由之前调用 app.use(cors()) 配置中间件 +// CORS (Cross-Origin Resource Sharing,跨域资源共享)由一系列 HTTP 响应头组成,这些 HTTP 响应头决定浏览器是否阻止前端 JS 代码跨域获取资源。 +// +// 浏览器的同源安全策略默认会阻止网页“跨域”获取资源。但如果接口服务器配置了 CORS 相关的 HTTP 响应头,就可以解除浏览器端的跨域访问限制。 +// +//https://blog.csdn.net/weixin_45691995/article/details/139706869 +//https://zhuanlan.zhihu.com/p/669087801 +//https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html#ic_osx_inst \ No newline at end of file