代码拉取完成,页面将自动刷新
同步操作将从 qwdingyu/led 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本项目是一个用nodejs实现的 go-view的后端,方便大家使用
除此之外,nodejs的后端还提供了,api功能,只要在数据库中配置sql,就能满足日常配置大屏和报表的需求。
联系方式:qq:285861181
go-view 代码仓库
名称 | 版本 |
---|---|
express | 4.18.2 |
mysql2 | 3.1.0 |
sequelize | 6.28.0 |
详见 package.json
|
😁 |
npm install
npm start
npm run dev
需要安装:npm i -g nodemon cross-env
npm run prod
npm run pm2
npm run sqlserver
.
├── README.en.md
├── README.md
├── db
│ └── mysql.sql 针对mysql数据需要的表结构
├── package.json package文件
├── server.js 服务启动文件
├── src
│ ├── config 配置文件
│ ├── controllers 控制器
│ ├── models model层
│ ├── routers 路由
│ ├── services 数据库操作
│ └── utils 工具类
└── tmp 文件上传临时目录
└── upload/tmp
用户名:admin 密码:123123 关于默认密码的问题,请参考:地址
数据库连接配置:
sequelizeConfig: {
username: 'root',
password: 'mes',
database: 'smt',
connect: {
host: '127.0.0.1',
port: 3306,
dialect: 'mysql',
dialectOptions: {
multipleStatements: true,
charset: 'utf8mb4',
supportBigNumbers: true,
bigNumberStrings: true,
decimalNumbers: true
},
timezone: '+08:00',
define: {
charset: 'utf8mb4',
freezeTableName: true,
timestamps: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
paranoid: false, //开启假删除
// 定义全局的钩子
hooks: {}
},
pool: {
max: 5, // 连接池最大链接数量
min: 0, // 最小连接数量
acquire: 30000, //建立连接最长时间
idle: 10000 //空闲最长连接时间
}
}
以下sql为mysql脚本,sql中@line@,为api调用时需要传递的参数,在后端程序会自动根据@line@替换成对应的值。
SELECT * FROM bm_ipinfo WHERE plineno = '@line@' AND station='@station@';
SELECT COUNT(*) AS total FROM bm_ipinfo WHERE plineno = '@line@' AND station='@station@';
SELECT * FROM bm_ipinfo WHERE plineno = '@line@' AND station='@station@' LIMIT @offset@,@rows@;
knex('pms_plan')
.select()
.where({ company_id: '@company_id@', plant_id: '@plant_id@', line: '@line@' })
.whereBetween('created_at', [moment('@GTD@').format('YYYY-MM-DDTHH:mm:ssZ'), moment('@LTD@').format('YYYY-MM-DDTHH:mm:ssZ')])
.where(qb => {
if ('@model@') qb.where('model', '@model@')
if ('@sn@') qb.where('sn', 'like', `%@sn@%`)
})
.orderBy([ { column: 'plan_date' }, { column: 'list_order', order: 'asc' } ])
.paginate({ perPage: @rows@, currentPage: @page@ })
调用的url和参数: 所有api的url的访问都是通过 http:127.0.0.1:4444/api/getDataByApiId进行,通过参数中的apiId进行识别。以下演示了post的参数,get访问也可以只是测试时参数传递不同而已
分页的参数传递
{
"restype":"datagrid",
"apiId": "021ea7a0-d878-11ea-a6ca-35634091a02b",
"line": "H",
"station":"6",
"page":1,
"rows":10
}
{
"apiId": "021ea7a0-d878-11ea-a6ca-35634091a02b",
"line": "H",
"station":"6"
}
"restype":"前端需要的数据格式,不同的前端所要求的返回格式不同(一般情况:不分页-不需要此字段;分页-datagrid即可)",
"apiId":"数据库api表中id字段,用于标识调用哪个脚本进行返回",
"line、station": "sql语句、存储过程、knex脚本中所需要的变量",
"page":"第几页",
"rows":"页大小"
npm install --save pg pg-hstore # Postgres
npm install --save mysql2
npm install --save mariadb
npm install --save sqlite3
npm install --save tedious # Microsoft SQL Server
npm install --save oracledb # Oracle Database
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。