快速入门Egg服务器架构

发布于:2023-01-01 ⋅ 阅读:(367) ⋅ 点赞:(0)


Egg官网:https://www.eggjs.org/zh-CN/tutorials/index

快速创建项目

创建文件夹并进入对应文件夹

	mkdir egg-example && cd egg-example

初始化egg项目

	npm init egg --type=simple

自动下载egg项目所依赖的包(需要用到的第三方模块)

	npm i

启动项目

	npm run dev  

egg项目介绍

app文件夹

	app/controller/** :用于解析用户的输入,处理后返回相应的结果
	app/public/**: 用于放置静态资源(和前端相关的文件js、css、html放在public下面可以直接访问到)
	app/router.js:用于配置URL路由规则(自己创建路由返回内容就在这里配置)

在这里egg既是前端服务器也是后端服务器

	app/controller/** =>存放后端的响应给前端的内容
	app/public/**======>存放前端的代码
	app/router.js======>存放后端路由,提供给前端(客户端)访问
  1. app/router.js
'use strict';			//使用严格模式

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  //根据不同的路由,获得不同的内容
  router.get('/', controller.myhome.index);			//两个参数(请求资源地址,controller里面的myhome文件里面的index)
  router.get('/login', controller.myhome.login);
  router.get('/register', controller.myhome.register);
  router.get('/userIndex', controller.user.index);
};
  1. app/controller/myhome.js
'use strict';

const Controller = require('egg').Controller;

class HomeController extends Controller {
  async index() {
    const { ctx } = this;
    ctx.body = 'aaaaa';    // 响应给客户端的内容
  }
  async login() {
    const { ctx } = this;
    // 响应给客户端的内容
    ctx.body = {
      code: 1,
      data: "登录成功"
    };
    // ctx.body = '登录成功';
  }
  async register() {
    const { ctx } = this;
    // 响应给客户端的内容
    ctx.body = {
      code: 1,
      data: "注册成功"
    };
  }
}

module.exports = HomeController;		//导出

config文件夹

egg项目配置文件(config文件夹里面的代码(两个js文件))一修改必须手动重新启动服务器

  1. config/config.default.js:配置服务器基本信息
  config.cluster = {
    listen: {
      path: '',
      port: 8000,				//设置端口号
      hostname: 'admin.jianmian.com',//域名的相关配置,默认localhost和ip地址,上线时用0.0.0.0
    }
  };
  1. config/plugin.js 用于配置需要加载的插件

package.json

保存项目的信息以及需要用到的第三方模块

获取提交的数据

接收GET请求的数据:ctx.request.query 和 ctx.query;(在app/controller/**文件打印)
接收POST请求的数据:ctx.request.body,而不是 ctx.body;post。请求时,会有安全验证问题,简单的处理方式是关闭安全验证:

	// config/config.default.js
	// 配置安全验证
	config.security = {
		csrf: {
      			enable: false,
      			ignoreJSON: true,
   		}
	}
    403:禁止访问(post请求会有安全验证问题,后端必须关闭安全验证)
    404:找不到,前端访问,后端没有

    注意:请求方式不是前端开发人员决定的,而是后端开发人员决定的

前后端分离

跨域


网站公告

今日签到

点亮在社区的每一天
去签到