node简易服务器完成
This commit is contained in:
		
							
								
								
									
										8
									
								
								config/db.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								config/db.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  host: "192.168.1.87",
 | 
				
			||||||
 | 
					  user: "root",
 | 
				
			||||||
 | 
					  port: 3306,
 | 
				
			||||||
 | 
					  password: "Cwy@2019",
 | 
				
			||||||
 | 
					  database: "dvcp_v2_dev",
 | 
				
			||||||
 | 
					  multipleStatements: true
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								demo.js
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								demo.js
									
									
									
									
									
								
							@@ -1,11 +0,0 @@
 | 
				
			|||||||
const express = require('express')
 | 
					 | 
				
			||||||
const app = express()
 | 
					 | 
				
			||||||
const port = 3000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
app.get('/', (req, res) => {
 | 
					 | 
				
			||||||
  res.send('Hello World!')
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
app.listen(port, () => {
 | 
					 | 
				
			||||||
  console.log(`Example app listening on port ${port}`)
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					const express = require('express')
 | 
				
			||||||
 | 
					const db = require('./utils/dbUitls')
 | 
				
			||||||
 | 
					const rest = require('./rest')
 | 
				
			||||||
 | 
					const app = express()
 | 
				
			||||||
 | 
					const port = 12525
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.listen(port, () => {
 | 
				
			||||||
 | 
					  console.log('启动数据库连接池...')
 | 
				
			||||||
 | 
					  db.init()
 | 
				
			||||||
 | 
					  console.log('启动接口...')
 | 
				
			||||||
 | 
					  rest.init(app).then(()=>{
 | 
				
			||||||
 | 
					    console.log(`serve is listening on ${port}`)
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
  "description": "node服务端",
 | 
					  "description": "node服务端",
 | 
				
			||||||
  "main": "index.js",
 | 
					  "main": "index.js",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "test": "node demo.js"
 | 
					    "dev": "node index.js"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "repository": {
 | 
					  "repository": {
 | 
				
			||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
@@ -14,8 +14,13 @@
 | 
				
			|||||||
    "node",
 | 
					    "node",
 | 
				
			||||||
    "js"
 | 
					    "js"
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
 | 
					  "engines": {
 | 
				
			||||||
 | 
					    "node": "16.13.1"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  "author": "kubbo",
 | 
					  "author": "kubbo",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "express": "^4.17.3"
 | 
					    "express": "^4.17.3",
 | 
				
			||||||
 | 
					    "helmet": "^5.0.2",
 | 
				
			||||||
 | 
					    "mysql": "^2.18.1"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								rest/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								rest/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					const {findFile} = require("../utils/fsUtils");
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  init: ins => {
 | 
				
			||||||
 | 
					    return findFile('./rest', file => {
 | 
				
			||||||
 | 
					      if (!/index\.js/.test(file)) {
 | 
				
			||||||
 | 
					        let rest = require(file.replace(/rest/, '.'))
 | 
				
			||||||
 | 
					        console.log(`初始化接口...${rest.action}`)
 | 
				
			||||||
 | 
					        if (rest.method == "post") {
 | 
				
			||||||
 | 
					          ins.post(rest.action, (req, res) => rest.execute(req, res))
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }).then(() => {
 | 
				
			||||||
 | 
					      console.log("接口初始化完毕")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										13
									
								
								rest/sysuser/sysuser.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								rest/sysuser/sysuser.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					const dbUtils = require("../../utils/dbUitls");
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  action: "/sys/user",
 | 
				
			||||||
 | 
					  method: "post",
 | 
				
			||||||
 | 
					  execute: (request, response) => {
 | 
				
			||||||
 | 
					    dbUtils.query(`select * from sys_user`).then(res => {
 | 
				
			||||||
 | 
					      response.send({
 | 
				
			||||||
 | 
					        code: 0,
 | 
				
			||||||
 | 
					        data: res
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										24
									
								
								utils/dbUitls.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								utils/dbUitls.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					const mysql = require("mysql");
 | 
				
			||||||
 | 
					const dbConfig = require("../config/db");
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  pool: null,
 | 
				
			||||||
 | 
					  init: () => {
 | 
				
			||||||
 | 
					    this.pool = mysql.createPool(dbConfig)
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  query: sql => new Promise(resolve => {
 | 
				
			||||||
 | 
					    this.pool?.getConnection((err, conn) => {
 | 
				
			||||||
 | 
					      if (err) {
 | 
				
			||||||
 | 
					        console.log(err)
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        conn.query(sql, (err, result) => {
 | 
				
			||||||
 | 
					          if (err) {
 | 
				
			||||||
 | 
					            console.log(err)
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            conn.release()
 | 
				
			||||||
 | 
					            resolve(result)
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					  }),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								utils/fsUtils.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								utils/fsUtils.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					const fs = require("fs")
 | 
				
			||||||
 | 
					const path = require("path")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const promisify = fn => {
 | 
				
			||||||
 | 
					  return function () {
 | 
				
			||||||
 | 
					    let args = arguments;
 | 
				
			||||||
 | 
					    return new Promise(function (resolve, reject) {
 | 
				
			||||||
 | 
					      [].push.call(args, function (err, result) {
 | 
				
			||||||
 | 
					        if (err) {
 | 
				
			||||||
 | 
					          console.log(err)
 | 
				
			||||||
 | 
					          reject(err);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          resolve(result);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      fn.apply(null, args);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const readdir = promisify(fs.readdir)
 | 
				
			||||||
 | 
					const stat = promisify(fs.stat)
 | 
				
			||||||
 | 
					const findFile = (dir = '.', cb) => {
 | 
				
			||||||
 | 
					  return readdir(dir).then(apps => {
 | 
				
			||||||
 | 
					    return Promise.all(apps.map(e => {
 | 
				
			||||||
 | 
					      let cPath = path.join(dir, e)
 | 
				
			||||||
 | 
					      return stat(cPath).then(state => {
 | 
				
			||||||
 | 
					        if (state.isDirectory()) {
 | 
				
			||||||
 | 
					          return findFile(cPath, cb)
 | 
				
			||||||
 | 
					        } else if (state.isFile()) {
 | 
				
			||||||
 | 
					          cb && cb(cPath)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    }))
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					module.exports = {readdir, stat, findFile}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user