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服务端",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "node demo.js"
|
||||
"dev": "node index.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -14,8 +14,13 @@
|
||||
"node",
|
||||
"js"
|
||||
],
|
||||
"engines": {
|
||||
"node": "16.13.1"
|
||||
},
|
||||
"author": "kubbo",
|
||||
"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