企业级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

目录
相关文章
|
9月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
502 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
9月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
7981 24
|
Web App开发 JavaScript 前端开发
Node.js开发
Node.js开发
249 13
|
Web App开发 JavaScript 前端开发
00-Node.js 简介
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
224 0
00-Node.js 简介
|
5月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
1166 11
|
10月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
10月前
|
JavaScript 前端开发 数据可视化
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
602 2
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
|
10月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!