# node-gis-admin **Repository Path**: lyxstart/node-gis-admin ## Basic Information - **Project Name**: node-gis-admin - **Description**: 用node做后台写的一套GIS后台管理系统,框架使用express+sequelize,主要功能包括用户管理、角色管理、菜单管理等常见管理模块以及图层配置,字段配置等GIS相关配置 - **Primary Language**: NodeJS - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-20 - **Last Updated**: 2025-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # node-gis-admin ## 介绍 用 node 做后台写的一套 GIS 后台管理系统,框架使用 express+sequelize,主要功能包括用户管理、角色管理、菜单管理等常见管理模块以及图层配置,字段配置等 GIS 相关配置 ## 软件架构 node+express+sequelize ## 创建流程 1. 安装 express 脚手架 ```bash npm install express-generator -g ``` 2. 初始化项目 ```bash express --view=null node-gis-admin ``` 因为项目是前后端分离的,不需要模板引擎,所以使用--view=null 参数来初始化项目 3. 修改启动方式为热启动 ```bash npm install nodemon -D ``` 修改 package.json 文件,将 start 命令修改为 nodemon ./bin/www ``` "start": "nodemon ./bin/www", ``` 4. 安装数据库 ```bash npm install pg pg-hstore ``` 5. 安装 sequelize ORM 映射框架 ```bash npm install sequelize ``` 安装完之后需要创建配置文件,配置怎么根据数据库表来生成模型,此处的配置文件由下面的 sequelize-cli 来生成 6. 安装 sequelize-cli 辅助生成表映射相关文件 ```bash npm install sequelize-cli -D ``` ```bash npx sequelize-cli init ``` 执行完之后会在根目录下生成 config、models、migrations、seeders 四个目录,分别用来存放配置文件、模型文件、迁移文件、种子文件(迁移文件和种子文件在本项目中没有用到) 然后安装 sequelize-automate 用来根据数据库生成模型文件 7. 安装 sequelize-automate 用来根据数据库生成模型文件 ```bash npm install sequelize-automate -D ``` 安装完之后创建配置文件,配置怎么根据数据库表来生成模型,此处的配置文件地址为 ./config/sequelize-automate.config.json 配置文件完成后添加 package.json 的脚本命令 ``` "sequelize-automate": "sequelize-automate -c sequelize-automate.config.json" ``` 执行命令 ```bash npm run sequelize-automate ``` 然后会在 models 目录下生成模型文件,它和 sequelize-cli 使用的模型有点不同,需要手动修改一下,在 models\index.js 中引用模型时不传最后一个参数,否则会报错 ```javascript if (config.use_env_variable) { sequelize = new Sequelize(process.env[config.use_env_variable], config); } else { sequelize = new Sequelize( config.database, config.username, config.password, config ); } ``` 同时 sequelize 默认情况下是认为每个表都有【"createdAt", "updatedAt"】字段的,但是我们的表中是没有这两个字段的,所以需要改下配置,在 config\config.json 中添加以下代码 ```json "define": { "defaultScope": { "attributes": { "exclude": ["createdAt", "updatedAt"] } }, "timestamps": false } ``` 8. 安装单元测试库 ```bash npm install jest -D ``` 然后在 package.json 中添加以下代码 ```json "scripts": { "test": "jest" } ``` 然后创建测试文件,任意目录下创建 \*\*.test.js 文件 9. 安装 eslint 代码检查工具 ```bash npm install eslint -D ``` 执行初始化命令 ```bash npx eslint --init ``` 根据提示下一步即可 然后修改 eslint.config.mjs 文件,设置运行环境为 node ```json {languageOptions: { globals: globals.node }} ``` 然后在 package.json 中添加以下代码 ```json "scripts": { "lint": "eslint ." } ``` ## 目录结构 ``` ├── app.js 是项目的主文件(入口文件) ├── bin 启动目录 │ └── www ├── package.json 包描述文件 ├── public 所有的静态资源 │ ├── images │ ├── javascripts │ └── stylesheets │ └── style.css ├── routes 路由 │ ├── index.js │ └── users.js └── views 视图(没用到) ``` #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)