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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 企业级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

相关实践学习
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1天前
|
资源调度 JavaScript 前端开发
JavaScript进阶 - JavaScript库与框架简介
【7月更文挑战第5天】JavaScript库和框架构成了前端开发的核心,如jQuery简化DOM操作,Angular、React和Vue提供全面解决方案。选择时要明确需求,避免过度工程化和陡峭学习曲线。使用版本管理工具确保兼容性,持续学习以适应技术变化。示例展示了jQuery和React的简单应用。正确选择和使用这些工具,能提升开发效率并创造优秀Web应用。
|
2天前
|
JSON JavaScript 数据格式
vue 绘制波形图 wavesurfer.js (音频/视频) 【实用教程】
vue 绘制波形图 wavesurfer.js (音频/视频) 【实用教程】
17 3
|
1天前
|
JavaScript
vue中使用 HotKeys.js 教程(按键响应、快捷键开发)
vue中使用 HotKeys.js 教程(按键响应、快捷键开发)
7 0
|
2天前
命令行加载特效 【cli-spinner.js】 实用教程
命令行加载特效 【cli-spinner.js】 实用教程
3 0
|
2天前
|
JavaScript
文件查询匹配神器 【glob.js】 实用教程
文件查询匹配神器 【glob.js】 实用教程
2 0
|
2天前
|
JavaScript 数据安全/隐私保护
node.js 命令行的命令注册和配置工具(最新版) commander.js 实用教程(含自研脚手架的创建流程)
node.js 命令行的命令注册和配置工具(最新版) commander.js 实用教程(含自研脚手架的创建流程)
3 0
|
Web App开发 异构计算 数据格式
|
1月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
46 3
|
2月前
|
移动开发 JavaScript 前端开发
为了学习vue3,安装nvm进行node的多版本管理
为了学习vue3,安装nvm进行node的多版本管理
88 2
|
2月前
|
资源调度 jenkins 持续交付
jenkins 自动安装nodejs16.16.0版本报错处理
jenkins 自动安装nodejs16.16.0版本报错处理
107 0