企业级node.js开发框架 【egg.js】 实用教程

简介: 企业级node.js开发框架 【egg.js】 实用教程

以搭建后端服务器 webcli_server 为例

创建并启动项目

  1. 新建文件夹 webcli_server
  2. 在webcli_server 文件夹中打开终端,执行
cnpm init egg --type=simple

cnpm 的朋友先执行 npm i cnpm

提示是否安装时,输入 y 回车

提示选择项目类型时,默认第一个回车即可

接着按提示输入项目名称、描述、作者等,都可以默认一直回车即可。


  1. 安装依赖
cnpm i
 
  1. 启动项目
npm run dev
 


  1. 查看效果
    浏览器访问 http://127.0.0.1:7001/

    恭喜你,项目创建并启动成功!

创建并启动 TS 项目

  1. 新建文件夹 eggDemo
  1. 在eggDemo 文件夹中打开终端,执行
cnpm init egg --type=ts

无 cnpm 的朋友先执行 npm i cnpm

向下的方向键选到 TS 后回车

之后一直回车使用默认项目名称、项目描述、项目作者、项目 key 即可。

  1. 安装依赖
cnpm i
  1. 启动项目
npm run dev
  1. 查看效果
    浏览器访问 http://127.0.0.1:7001/

    恭喜你,项目创建并启动成功!

创建 API

以获取项目模板的接口为例

  1. 新增文件 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;

  1. 在 app\router.js 中添加 API的地址
router.get('/getTemplate', controller.getTemplate.index);

  1. 重启项目,访问 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

目录
相关文章
|
JavaScript 前端开发 API
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
453 19
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
15456 23
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
4468 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
缓存 监控 JavaScript
Vue.js 框架下的性能优化策略与实践
Vue.js 框架下的性能优化策略与实践
|
移动开发 JavaScript 前端开发
8个最佳的JavaScript移动应用开发框架
随着智能手机和平板电脑的普及,移动应用的开发越来越流行,基于JavaScript的移动开发框架也逐渐成为主流。移动开发与桌面应用的开发相比,有个显著的不同,那就是,移动应用绝大多数是基于触摸屏的应用。
1435 0
|
移动开发 JavaScript 前端开发
8个最佳的JavaScript移动应用开发框架
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/9935445 《8个最佳的JavaScript移动应用开发框架》 作者:chszs,转载需注明。
1183 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
480 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
361 1
JavaScript中的原型 保姆级文章一文搞懂
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
243 0