diff --git a/.gitignore b/.gitignore index 483a78a..855ff17 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ lerna-debug.log* .pnpm-debug.log* upload/ +mongo_data/ # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json diff --git a/Dockerfile b/Dockerfile index e69de29..10224a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1 @@ +MONGO_DSN="mongodb://localhost:27017" \ No newline at end of file diff --git a/README.md b/README.md index 27c8b1d..c0f82b7 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,13 @@ 1. express 2. nodenom (dev) -3. dotenv (dev) \ No newline at end of file +3. dotenv (dev) + + +### 其它 + +1. mongo + +``` +docker pull mongo:7.0.14 +``` \ No newline at end of file diff --git a/app.js b/app.js index f6534df..63dc4cb 100644 --- a/app.js +++ b/app.js @@ -1,18 +1,17 @@ -import {express} from "express"; - require('dotenv').config() - -console.log(process.env.USER_ID) - -const app=express() +const express=require('express') const fs=require('fs') const bodyParser=require('body-parser') +const user=require("./handler/user") const multer=require('multer') const uploadConfig=multer({ dest: './upload' }) + +const app=express() app.use(bodyParser.urlencoded({extended:false})) -app.use(app.static("./public")); +app.use(express.static("./public")); +app.use("/user",user); app.listen(8080); \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c787c0d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.5' + +services: + mongo: + image: mongo:latest + ports: + - 27017:27017 + environment: + - MONGO_INITDB_ROOT_USERNAME=root + - MONGO_INITDB_ROOT_PASSWORD=root + - TZ=Asia/Shanghai + volumes: + - ./mongo_data:/data/db \ No newline at end of file diff --git a/handler/user.js b/handler/user.js new file mode 100644 index 0000000..549075a --- /dev/null +++ b/handler/user.js @@ -0,0 +1,8 @@ +const express=require("express"); +const router=express.Router(); + +router.get("/",function(req,res){ + res.send("Hello World") +}) + +module.exports=router; \ No newline at end of file diff --git a/mongo/mongo.js b/mongo/mongo.js new file mode 100644 index 0000000..2383069 --- /dev/null +++ b/mongo/mongo.js @@ -0,0 +1,16 @@ +const {MongoClient} = require('mongodb'); + + +require('dotenv').config() + +function newDB(){ + const uri=process.env.MONGO_DSN + + const client = new MongoClient(uri,{ useNewUrlParser: true, useUnifiedTopology: true }) + try { + client.connect() + const db=client.db(process.env.MONGO_DB) + } catch (error) { + console.log(error) + } +} \ No newline at end of file diff --git a/package.json b/package.json index 80ee144..b5d99e6 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "dependencies": { "body-parser": "^1.20.3", "express": "^4.21.0", + "mongo": "^0.1.0", "multer": "1.4.5-lts.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64da381..106792d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: express: specifier: ^4.21.0 version: 4.21.0 + mongo: + specifier: ^0.1.0 + version: 0.1.0 multer: specifier: 1.4.5-lts.1 version: 1.4.5-lts.1 @@ -27,6 +30,15 @@ importers: packages: + '@mongodb-js/saslprep@1.1.9': + resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==} + + '@types/webidl-conversions@7.0.3': + resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} + + '@types/whatwg-url@11.0.5': + resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==} + accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -59,6 +71,10 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + bson@6.8.0: + resolution: {integrity: sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==} + engines: {node: '>=16.20.1'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -261,6 +277,9 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + memory-pager@1.5.0: + resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -291,6 +310,40 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mongo@0.1.0: + resolution: {integrity: sha512-2MPq+GCNKhah0V/g/HIQI/S1h6Ycd87KPuXAITkeXWT6wncvABFxOaXdzCKlRvLSQRUkDimllrRrhoHUTD8usg==} + engines: {node: '>= 0.4.0'} + + mongodb-connection-string-url@3.0.1: + resolution: {integrity: sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==} + + mongodb@6.9.0: + resolution: {integrity: sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA==} + engines: {node: '>=16.20.1'} + peerDependencies: + '@aws-sdk/credential-providers': ^3.188.0 + '@mongodb-js/zstd': ^1.1.0 + gcp-metadata: ^5.2.0 + kerberos: ^2.0.1 + mongodb-client-encryption: '>=6.0.0 <7' + snappy: ^7.2.2 + socks: ^2.7.1 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + '@mongodb-js/zstd': + optional: true + gcp-metadata: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + socks: + optional: true + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -347,6 +400,10 @@ packages: pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -403,6 +460,9 @@ packages: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} + sparse-bitfield@3.0.3: + resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -430,6 +490,10 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true + tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -455,12 +519,30 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-url@13.0.0: + resolution: {integrity: sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==} + engines: {node: '>=16'} + xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} snapshots: + '@mongodb-js/saslprep@1.1.9': + dependencies: + sparse-bitfield: 3.0.3 + + '@types/webidl-conversions@7.0.3': {} + + '@types/whatwg-url@11.0.5': + dependencies: + '@types/webidl-conversions': 7.0.3 + accepts@1.3.8: dependencies: mime-types: 2.1.35 @@ -505,6 +587,8 @@ snapshots: dependencies: fill-range: 7.1.1 + bson@6.8.0: {} + buffer-from@1.1.2: {} busboy@1.6.0: @@ -717,6 +801,8 @@ snapshots: media-typer@0.3.0: {} + memory-pager@1.5.0: {} + merge-descriptors@1.0.3: {} methods@1.1.2: {} @@ -739,6 +825,29 @@ snapshots: dependencies: minimist: 1.2.8 + mongo@0.1.0: + dependencies: + mongodb: 6.9.0 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - gcp-metadata + - kerberos + - mongodb-client-encryption + - snappy + - socks + + mongodb-connection-string-url@3.0.1: + dependencies: + '@types/whatwg-url': 11.0.5 + whatwg-url: 13.0.0 + + mongodb@6.9.0: + dependencies: + '@mongodb-js/saslprep': 1.1.9 + bson: 6.8.0 + mongodb-connection-string-url: 3.0.1 + ms@2.0.0: {} ms@2.1.3: {} @@ -793,6 +902,8 @@ snapshots: pstree.remy@1.1.8: {} + punycode@2.3.1: {} + qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -877,6 +988,10 @@ snapshots: dependencies: semver: 7.6.3 + sparse-bitfield@3.0.3: + dependencies: + memory-pager: 1.5.0 + statuses@2.0.1: {} streamsearch@1.1.0: {} @@ -897,6 +1012,10 @@ snapshots: touch@3.1.1: {} + tr46@4.1.1: + dependencies: + punycode: 2.3.1 + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -914,4 +1033,11 @@ snapshots: vary@1.1.2: {} + webidl-conversions@7.0.0: {} + + whatwg-url@13.0.0: + dependencies: + tr46: 4.1.1 + webidl-conversions: 7.0.0 + xtend@4.0.2: {} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..34ef243 --- /dev/null +++ b/public/index.html @@ -0,0 +1,11 @@ + + + + + + Document + + +

hello world.

+ + \ No newline at end of file