Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yafangsuo_dataServer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
yafangsuo_dataServer
Commits
90b13405
Commit
90b13405
authored
Aug 25, 2023
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
模糊查询
parent
6ffdb28e
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
142 additions
and
34 deletions
+142
-34
package-lock.json
package-lock.json
+78
-0
package.json
package.json
+1
-0
serverConfig.xml
serverConfig.xml
+1
-1
findData.ts
src/biz/mysql/findData.ts
+21
-5
errorEnum.ts
src/config/errorEnum.ts
+2
-0
serverConfig.ts
src/config/serverConfig.ts
+1
-0
dbInit.ts
src/db/mysql/dbInit.ts
+0
-25
main.ts
src/main.ts
+2
-0
sqlModelBind.ts
src/model/sqlModelBind.ts
+27
-0
mysqlRouter.ts
src/routers/mysqlRouter.ts
+9
-3
No files found.
package-lock.json
View file @
90b13405
...
...
@@ -649,6 +649,14 @@
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"generate-function"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz"
,
"integrity"
:
"sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ=="
,
"requires"
:
{
"is-property"
:
"^1.0.2"
}
},
"get-intrinsic"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz"
,
...
...
@@ -807,6 +815,11 @@
"resolved"
:
"https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429388528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"
,
"integrity"
:
"sha1-76ouqdqg16suoTqXsritUf776L4="
},
"is-property"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
,
"integrity"
:
"sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="
},
"is-stream"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
,
...
...
@@ -916,6 +929,11 @@
}
}
},
"long"
:
{
"version"
:
"5.2.3"
,
"resolved"
:
"https://registry.npmjs.org/long/-/long-5.2.3.tgz"
,
"integrity"
:
"sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
},
"lru-cache"
:
{
"version"
:
"4.1.5"
,
"resolved"
:
"https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz"
,
...
...
@@ -1093,6 +1111,61 @@
}
}
},
"mysql2"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mysql2/-/mysql2-3.6.0.tgz"
,
"integrity"
:
"sha512-EWUGAhv6SphezurlfI2Fpt0uJEWLmirrtQR7SkbTHFC+4/mJBrPiSzHESHKAWKG7ALVD6xaG/NBjjd1DGJGQQQ=="
,
"requires"
:
{
"denque"
:
"^2.1.0"
,
"generate-function"
:
"^2.3.1"
,
"iconv-lite"
:
"^0.6.3"
,
"long"
:
"^5.2.1"
,
"lru-cache"
:
"^8.0.0"
,
"named-placeholders"
:
"^1.1.3"
,
"seq-queue"
:
"^0.0.5"
,
"sqlstring"
:
"^2.3.2"
},
"dependencies"
:
{
"denque"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/denque/-/denque-2.1.0.tgz"
,
"integrity"
:
"sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="
},
"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=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3.0.0"
}
},
"lru-cache"
:
{
"version"
:
"8.0.5"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz"
,
"integrity"
:
"sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA=="
},
"sqlstring"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz"
,
"integrity"
:
"sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg=="
}
}
},
"named-placeholders"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz"
,
"integrity"
:
"sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w=="
,
"requires"
:
{
"lru-cache"
:
"^7.14.1"
},
"dependencies"
:
{
"lru-cache"
:
{
"version"
:
"7.18.3"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz"
,
"integrity"
:
"sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="
}
}
},
"negotiator"
:
{
"version"
:
"0.6.2"
,
"resolved"
:
"https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz"
,
...
...
@@ -1375,6 +1448,11 @@
}
}
},
"seq-queue"
:
{
"version"
:
"0.0.5"
,
"resolved"
:
"https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz"
,
"integrity"
:
"sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
},
"sequelize"
:
{
"version"
:
"6.32.1"
,
"resolved"
:
"https://registry.npmjs.org/sequelize/-/sequelize-6.32.1.tgz"
,
...
...
package.json
View file @
90b13405
...
...
@@ -17,6 +17,7 @@
"
moment
"
:
"^2.24.0"
,
"
mongoose
"
:
"^5.4.0"
,
"
mysql
"
:
"^2.18.1"
,
"
mysql2
"
:
"^3.6.0"
,
"
node-xlsx
"
:
"^0.16.1"
,
"
nodemailer
"
:
"^6.1.1"
,
"
qs
"
:
"^6.11.0"
,
...
...
serverConfig.xml
View file @
90b13405
<config>
<port>
40002
</port>
<sign>
xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1iou
-0u124r-
0qwejfokasjfolksaujfoas
</sign>
<sign>
xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1iou
d0u124rx
0qwejfokasjfolksaujfoas
</sign>
<mongodb>
<path>
127.0.0.1
</path>
<port>
27017
</port>
...
...
src/biz/mysql/findData.ts
View file @
90b13405
import
{
Op
}
from
"sequelize"
;
import
{
ERRORENUM
}
from
"../../config/errorEnum"
;
import
{
modelMap
}
from
"../../model/modelBind"
;
import
{
BizError
}
from
"../../util/bizError"
;
function
analysisParamToWhere
(
param
)
{
let
where
=
{};
for
(
let
key
in
param
)
{
// 模糊查询{"字段名":{"%like%":'三'}}
if
(
param
[
key
][
"%like%"
])
{
where
[
key
]
=
{[
Op
.
like
]:
`%
${
param
[
key
]}
%`
};
}
else
{
where
[
key
]
=
param
[
key
];
}
}
return
where
}
/**
* 查询单个数据
...
...
@@ -9,8 +21,9 @@ import { BizError } from "../../util/bizError";
* @param param
* @returns
*/
export
async
function
selectOneDataByParam
(
tableModel
,
param
:
object
)
{
let
data
=
tableModel
.
findOne
({
where
:
param
});
export
async
function
selectOneDataByParam
(
tableModel
,
param
)
{
let
where
=
analysisParamToWhere
(
param
);
let
data
=
tableModel
.
findOne
({
where
});
return
{
data
};
}
...
...
@@ -22,7 +35,8 @@ export async function selectOneDataByParam(tableModel, param:object) {
* @returns
*/
export
async
function
selectDataListByParam
(
tableModel
,
param
:
any
)
{
let
data
=
tableModel
.
findAll
({
where
:
param
});
let
where
=
analysisParamToWhere
(
param
);
let
data
=
tableModel
.
findAll
({
where
});
return
{
data
};
}
...
...
@@ -37,12 +51,14 @@ export async function selectDataListByParam(tableModel, param:any) {
*/
export
async
function
selectDataListToPageByParam
(
tableModel
,
param
:
any
,
pageNumber
:
number
,
pageSize
:
number
)
{
pageSize
=
pageSize
||
10
;
let
data
=
tableModel
.
findAll
({
where
:
param
,
offset
:(
pageNumber
-
1
)
*
10
,
limit
:
pageSize
});
let
where
=
analysisParamToWhere
(
param
);
let
data
=
tableModel
.
findAll
({
where
,
offset
:(
pageNumber
-
1
)
*
10
,
limit
:
pageSize
});
return
{
data
};
}
export
async
function
selectDataCountByParam
(
tableModel
,
param
:
any
)
{
let
data
=
tableModel
.
count
({
where
:
param
});
let
where
=
analysisParamToWhere
(
param
);
let
data
=
tableModel
.
count
({
where
});
return
{
data
};
}
...
...
src/config/errorEnum.ts
View file @
90b13405
...
...
@@ -5,6 +5,8 @@ export enum ERRORENUM {
缺少必要参数
_
表名
,
数据表不存在
,
参数错误
,
添加时数据对象为空
,
修改时数据对象为空
}
/**
...
...
src/config/serverConfig.ts
View file @
90b13405
...
...
@@ -28,6 +28,7 @@ export async function initConfig() {
if
(
mysqldb
)
{
let
dbConfigInfo
=
mysqldb
[
0
];
systemConfig
.
mysqldb
=
{
host
:
''
,
port
:
0
,
user
:
''
,
pwd
:
''
,
dataBase
:
''
};
if
(
dbConfigInfo
.
mysqlHost
&&
dbConfigInfo
.
mysqlPort
&&
dbConfigInfo
.
mysqlUser
&&
dbConfigInfo
.
dataBase
)
{
systemConfig
.
mysqldb
.
host
=
dbConfigInfo
.
mysqlHost
[
0
];
systemConfig
.
mysqldb
.
port
=
parseInt
(
dbConfigInfo
.
mysqlPort
[
0
]);
...
...
src/db/mysql/dbInit.ts
deleted
100644 → 0
View file @
6ffdb28e
import
{
TablesConfig
}
from
"../../config/mysqlTableConfig"
;
import
{
mysqlDB
}
from
"./mysqlInit"
;
/**
* mysql 数据层
*/
let
baseDB
;
export
async
function
initMysqlDB
()
{
for
(
let
tableNameCN
in
TablesConfig
)
{
let
{
tableName
,
schema
}
=
TablesConfig
[
tableNameCN
];
let
schemaConf
=
{
freezeTableName
:
true
,
//true表示使用给定的表名,false表示模型名后加s作为表名
timestamps
:
false
//true表示给模型加上时间戳属性(createAt、updateAt),false表示不带时间戳属性
};
baseDB
[
tableName
]
=
await
mysqlDB
.
define
(
tableName
,
schema
,
schemaConf
).
sync
({})
}
}
export
{
baseDB
};
\ No newline at end of file
src/main.ts
View file @
90b13405
...
...
@@ -2,6 +2,7 @@ import { initConfig, systemConfig} from "./config/serverConfig";
import
*
as
mongoDB
from
"./db/mongo/dbInit"
;
import
*
as
mysqlDB
from
"./db/mysql/mysqlInit"
;
import
{
initModel
}
from
"./model/modelBind"
;
import
{
initMysqlModel
}
from
"./model/sqlModelBind"
;
import
{
httpServer
}
from
"./net/http_server"
;
async
function
lanuch
()
{
...
...
@@ -12,6 +13,7 @@ async function lanuch() {
await
initModel
();
/**初始化sql */
await
mysqlDB
.
initMysqlDB
();
await
initMysqlModel
();
/**创建http服务 */
httpServer
.
createServer
(
systemConfig
.
port
);
...
...
src/model/sqlModelBind.ts
View file @
90b13405
/**
* mysql 数据层
*/
import
{
TablesConfig
}
from
"../config/mysqlTableConfig"
;
import
{
mysqlDB
}
from
"../db/mysql/mysqlInit"
;
let
baseDB
=
{};
export
async
function
initMysqlModel
()
{
for
(
let
tableNameCN
in
TablesConfig
)
{
let
{
tableName
,
schema
}
=
TablesConfig
[
tableNameCN
];
let
schemaConf
=
{
freezeTableName
:
true
,
//true表示使用给定的表名,false表示模型名后加s作为表名
timestamps
:
false
//true表示给模型加上时间戳属性(createAt、updateAt),false表示不带时间戳属性
};
let
model
=
mysqlDB
.
define
(
tableName
,
schema
,
schemaConf
);
baseDB
[
tableName
]
=
model
.
sync
({}).
then
();
}
}
export
{
baseDB
};
\ No newline at end of file
src/routers/mysqlRouter.ts
View file @
90b13405
...
...
@@ -7,6 +7,8 @@ import * as findBiz from '../biz/mysql/findData';
import
{
checkMySqlSign
}
from
'../middleware/user'
;
import
{
eccReqParamater
}
from
'../tools/eccParam'
;
import
{
BizError
}
from
'../util/bizError'
;
import
{
ERRORENUM
}
from
'../config/errorEnum'
;
export
function
setRouter
(
httpServer
){
httpServer
.
post
(
'/yfs/dataserver/mysql/table/add'
,
checkMySqlSign
,
asyncHandler
(
addTableData
));
...
...
@@ -26,6 +28,8 @@ async function addTableData(req, res) {
let
reqConf
=
{
data
:
'Object'
};
let
{
data
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
if
(
!
Object
.
keys
(
data
).
length
)
throw
new
BizError
(
ERRORENUM
.
添加时数据对象为空
);
let
result
=
await
addBiz
.
addData
(
table
,
data
);
res
.
success
(
result
);
}
...
...
@@ -34,10 +38,10 @@ async function addTableData(req, res) {
async
function
deleteData
(
req
,
res
)
{
let
table
=
req
.
headers
.
table
;
let
reqConf
=
{
data
:
'Object'
};
let
{
data
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
reqConf
=
{
param
:
'Object'
};
let
{
param
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
result
=
await
delBiz
.
delData
(
table
,
data
);
let
result
=
await
delBiz
.
delData
(
table
,
param
);
res
.
success
(
result
);
}
...
...
@@ -47,6 +51,8 @@ async function updateManyData(req, res) {
let
reqConf
=
{
param
:
'Object'
,
data
:
'Object'
};
let
{
param
,
data
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
if
(
!
Object
.
keys
(
data
).
length
)
throw
new
BizError
(
ERRORENUM
.
修改时数据对象为空
);
let
result
=
await
updateBiz
.
updateManyData
(
table
,
param
,
data
);
res
.
success
(
result
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment