以搭建后端服务器 webcli_server 为例
创建并启动项目
- 新建文件夹 webcli_server
- 在webcli_server 文件夹中打开终端,执行
cnpm init egg --type=simple
无 cnpm 的朋友先执行 npm i cnpm
提示是否安装时,输入 y 回车
提示选择项目类型时,默认第一个回车即可
接着按提示输入项目名称、描述、作者等,都可以默认一直回车即可。
- 安装依赖
cnpm i
- 启动项目
npm run dev
- 查看效果
浏览器访问 http://127.0.0.1:7001/
恭喜你,项目创建并启动成功!
创建并启动 TS 项目
- 新建文件夹 eggDemo
- 在eggDemo 文件夹中打开终端,执行
cnpm init egg --type=ts
无 cnpm 的朋友先执行 npm i cnpm
向下的方向键选到 TS 后回车
之后一直回车使用默认项目名称、项目描述、项目作者、项目 key 即可。
- 安装依赖
cnpm i
- 启动项目
npm run dev
- 查看效果
浏览器访问 http://127.0.0.1:7001/
恭喜你,项目创建并启动成功!
创建 API
以获取项目模板的接口为例
- 新增文件 getTemplate.js ,路径为 app\controller\getTemplate.js ,内容为
'use strict'; const Controller = require('egg').Controller; class getTemplateController extends Controller { async index() { const { ctx } = this; ctx.body = '获取模板'; } } module.exports = getTemplateController;
- 在 app\router.js 中添加 API的地址
router.get('/getTemplate', controller.getTemplate.index);
- 重启项目,访问 http://127.0.0.1:7001/getTemplate
恭喜你,新的 API 创建成功!
连接数据库
通过 Robo 3T连接远程数据库,具体方法见
- MongoDB的GUI工具——Robo 3T连接远程数据库MongoDB
https://blog.csdn.net/weixin_41192489/article/details/116561364
通过 Robo 3T
- 新建数据库 webcli_server
- 新建用户 root
- 新建表 template,内容为
{ "a" : 1, "b" : 2 }
最终效果如下:
安装依赖
cnpm i @pick-star/cli-mongodb
将 getTemplate.js 修改为
'use strict'; const Controller = require('egg').Controller; // 导入数据库连接工具 const mongodb = require('@pick-star/cli-mongodb'); // 数据库的远程连接地址,格式为 'mongodb://用户名:密码@远程IP:27017/数据库名称'; const dbUrl = 'mongodb://改成自己的数据库用户名:改成自己的数据库密码@改成自己的远程服务器公网ip:27017/webcli_server'; class getTemplateController extends Controller { async index() { const { ctx } = this; // 'template' 为数据库的表名 const data = await new mongodb(dbUrl).query('template'); ctx.body = data; } } module.exports = getTemplateController;
新增的代码功能详见代码中的备注。
启动项目,浏览器访问 http://127.0.0.1:7001/getTemplate
成功访问到数据库中的数据,证明远程连接数据库成功!
调试技巧
使用自带插件logger
默认插件logger只显示debug级别以上的信息,可以在配置中修改,如在config.default.ts中添加
config.logger = { consoleLevel: 'DEBUG', };
在 Controller 中使用,语法与console相同。
ctx.logger.debug('debug'); ctx.logger.info('info'); ctx.logger.warn('warn'); ctx.logger.error(new Error('myError'));
使用vscode进行断点调试
在目标代码处设置断点
点击调试按钮
访问接口执行到目标断点时,会弹出下方调试界面,左侧可以监控变量的值,调试面板可控制代码逐句向下执行。
更多功能
详见官网
https://www.eggjs.org/zh-CN