{"id":16347062,"url":"https://github.com/ospoon/service-manage","last_synced_at":"2025-11-09T02:30:26.059Z","repository":{"id":105557416,"uuid":"226815040","full_name":"OSpoon/service-manage","owner":"OSpoon","description":"express nodejs 服务","archived":false,"fork":false,"pushed_at":"2024-05-25T01:33:21.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-28T06:09:37.193Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OSpoon.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-09T07:52:40.000Z","updated_at":"2024-05-25T01:33:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6af105a-e192-4dac-879c-3474d7cffbe8","html_url":"https://github.com/OSpoon/service-manage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2Fservice-manage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2Fservice-manage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2Fservice-manage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OSpoon%2Fservice-manage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OSpoon","download_url":"https://codeload.github.com/OSpoon/service-manage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239565664,"owners_count":19660158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T00:39:28.262Z","updated_at":"2025-11-09T02:30:26.014Z","avatar_url":"https://github.com/OSpoon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"##### 初始化目录:\n```\nnpm init\n```\n\n##### 安装 Express:\n```\nnpm install express --save\n```\n\n##### HelloWorld:\n###### 创建app.js\n```\n//导入express\nconst  express = require('express')\n//创建app对象\nconst app = express()\n//构建请求\napp.get('/',(req, res)=\u003eres.send('hello world'))\n//配置app监听3000端口\napp.listen(3000, ()=\u003econsole.log('Example app listening on port 3000!'))\n```\n\n##### 快速创建应用的骨架-Express 应用程序生成器\n###### 全局安装生成器(express-generator)\n```\nnpm install express-generator -g\n```\n\n###### 使用生成器创建项目\n```\nexpress --view=pug service-manage\n```\n\n###### 安装依赖\n```\ncd service-manage\nnpm install\n```\n\n###### 启动应用\n```\n//MacOS/Linux 默认监听3000端口\nDEBUG=service-manage:* npm start\n//Windows 默认监听3000端口\nset DEBUG=service-manage:* \u0026 npm start\n```\n\n##### 路由基本配置\n###### 1. 路由文件routes-\u003etools.js\n```\nvar express = require('express')\n//获取路由实例\nvar router = express.Router();\n\n/* tools listing */\nrouter.get('/',function (req, res ,next) {\n    res.send('Welcome to visit tools... ')\n})\n\nrouter.post('/', function (req, res) {\n    res.send('Got a POST request')\n})\n\nrouter.put('/user', function (req, res) {\n    res.send('Got a PUT request at /user')\n})\n\nrouter.delete('/user', function (req, res) {\n    res.send('Got a DELETE request at /user')\n})\n//导出tools路由\nmodule.exports = router\n```\n\n###### 2. app.js配置新路由文件\n```\n//导入toolsRouter模块\nvar toolsRouter = require('./routes/tools');\n//添加路由规则\napp.use('/tools', toolsRouter)\n```\n\n##### 路由配置\n###### router.all() 对路由规则相同路由进行预处理\n```\nrouter.all('/', function (req, res, next) {\n    console.log('Accessing the secret section ...')\n    next() // pass control to the next handler\n})\n```\n\n###### 请求参数\n###### 配置\n```\nrouter.get('/users/:userId/books/:bookId',function (req, res ,next) {\n    res.send(req.params)\n})\n```\n###### Test\n```\nRoute path: /users/:userId/books/:bookId\nRequest URL: http://localhost:3000/users/34/books/8989\nreq.params: { \"userId\": \"34\", \"bookId\": \"8989\" }\n```\n\n\n### 后台开发必做之Swagger配置\n\n#### 一、安装:\n```\nnpm i express-swagger-generator --save-dev\n```\n#### 二、基本配置\n```\nconst express = require('express');\nconst app = express();\nconst expressSwagger = require('express-swagger-generator')(app);\n\nlet options = {\n    swaggerDefinition: {\n        info: {\n            description: 'This is a sample server',\n            title: 'Swagger',\n            version: '1.0.0',\n        },\n        host: 'localhost:3000',\n        basePath: '/v1',\n        produces: [\n            \"application/json\",\n            \"application/xml\"\n        ],\n        schemes: ['http', 'https'],\n\t\tsecurityDefinitions: {\n            JWT: {\n                type: 'apiKey',\n                in: 'header',\n                name: 'Authorization',\n                description: \"\",\n            }\n        }\n    },\n    basedir: __dirname, //app absolute path\n    files: ['./routes/**/*.js'] //Path to the API handle folder\n};\nexpressSwagger(options)\napp.listen(3000);\n```\n#### 三、查看预览\n```\nhttp://localhost:3000/api-docs/api-docs\n```\n#### 四、swagger.io\n```\nhttp://editor.swagger.io/#\n```\n\n### 后台开发必做之Swagger配置2\n###### 安装:\n```\nnpm install swagger-jsdoc swagger-ui-express --save\n```\n\n###### 项目目录新增config.js\n```\n// swagger配置信息\nexports.swaggerConfig = {\n    openapi: '3.0.0',\n    title: 'Node Service API',\n    version: '1.0.0',\n    apis: ['./routes/*.js'],\n    routerPath: '/api-docs'\n}\n```\n\n###### 项目目录新增\\swagger\\index.js\\\n```\nvar swaggerUi = require('swagger-ui-express');\nvar swaggerJSDoc = require('swagger-jsdoc');\nvar config = require('../config')\n\nexports.setSwagger = function (app) {\n    const options = {\n        definition: {\n            openapi: config.swaggerConfig.openapi,\n            info: {\n                title: config.swaggerConfig.title,\n                version: config.swaggerConfig.version\n            }\n        },\n        apis: config.swaggerConfig.apis\n    }\n\n    const swaggerSpec = swaggerJSDoc(options)\n\n    app.get('/api-docs.json', (req, res) =\u003e {\n        res.setHeader('Content-Type', 'application/json')\n        res.send(swaggerSpec)\n    })\n    app.use(config.swaggerConfig.routerPath, swaggerUi.serve, swaggerUi.setup(swaggerSpec))\n}\n```\n\n###### app.js配置\n```\nvar swaggerConfig = require('./swagger')\n...\nvar app = express();\n...\nswaggerConfig.setSwagger(app)\n```\n\n#### PM2使用\n###### 安装:\n```\nnpm install pm2 -g\n```\n\n###### 启动:\n```\npm2 start app.js\n```\n\n###### 其他:\n```\npm2 list\n\npm2 stop 0\n\npm2 restart 0\n\npm2 show 0\n\npm2 delete 0\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fospoon%2Fservice-manage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fospoon%2Fservice-manage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fospoon%2Fservice-manage/lists"}