入门egg.js

入门egg.js

egg.js是阿里内部根据koa框架开发的一个开源的web框架,目前阿里内部大部分的web框架都是基于egg.js开发的,所以这个框架是比较好的,比较适合企业级开发。
egg.js也是基于mvc模型来开发的,这种模型可以比较好的约束开发,让公司内部更好沟通。

建立egg.js框架

先建立一个文件并且进入文件
mkdir egg-example && cd egg-example

然后建立egg框架,如果你按照官方按照不上记得加上–registry https://registry.npm.taobao.org
npm init egg --type=simple --registry https://registry.npm.taobao.org

simple - 简易的 Egg 应用 。
ts - 简易的 Egg 应用,提供 typescript 支持。
empty - 空的 Egg 应用。
plugin - Egg 插件。
framework - Egg 框架。

然后初始化文件,也就是建立package.json,对项目描述的文件。
npm i --yes

文件结构

egg.js框架是有严格的文件目录制约的。
egg-project
├── package.json
├── app.js (可选)
├── agent.js (可选)
├── app
| ├── router.js
│ ├── controller
│ | └── home.js
│ ├── service (可选)
│ | └── user.js
│ ├── middleware (可选)
│ | └── response_time.js
│ ├── schedule (可选)
│ | └── my_task.js
│ ├── public (可选)
│ | └── reset.css
│ ├── view (可选)
│ | └── home.tpl
│ └── extend (可选)
│ ├── helper.js (可选)
│ ├── request.js (可选)
│ ├── response.js (可选)
│ ├── context.js (可选)
│ ├── application.js (可选)
│ └── agent.js (可选)
├── config
| ├── plugin.js
| ├── config.default.js
│ ├── config.prod.js
| ├── config.test.js (可选)
| ├── config.local.js (可选)
| └── config.unittest.js (可选)
└── test
├── middleware
| └── response_time.test.js
└── controller
└── home.test.js

这是一个最完整的项目目录结构,有些文件是可以不需要的,可以根据需求来建立文件。

文件夹作用
1、	app.router.js中是用来匹配各个url,然后执行相对应controller的函数
2、	app.controller是作为MVC框架中的C,用于控制浏览器和服务器的交互
3、	app.server是作为MVC框架中的M,用于与数据库交互或者是数据处理
4、	app.middleware是用来做中间键的
5、	app.public是用来放静态文件的
6、	app.extend是用来做扩展的,比如常用的app方法,如果在application中修改这个方法,再其他函数中使用这个方法的话,就会先调用这个函数
7、	config是用来编写配置文件的
8、	config.plugin.js这个是插件的作用,主要用于对整个运行的调整,或者增添新的功能
9、	test是用来做单元测试的
10、	app.js和agent.js是用来在初始化之前做一些操作,就是框架在运行之前先调用这两个文件的函数。
11、	app.view是用来做模板渲染的,跟django中的view是一样的用法
12、	app.model是用来放置领域模型的,是用来对数据库的单个表操作的。

运行

npm run dev

虽然说修改代码内部会自动重启,但是效果并不是很好。

修改地址和端口

module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + 'csrf_tonken';

  // add your middleware config here
  config.middleware = [];

  // add your user config here
  const userConfig = {
    // myAppName: 'egg',
  };

  // 修改端口号
    config.cluster = {
      listen: {
        path: '',
        port: 8888,
        hostname: '192.168.1.102'
      }
    };
    config.view = {
    defaultViewEngine: 'nunjucks', //设置默认模板
    cache: true, //是否开启缓存,开启后,下次渲染同样路径的模板时不会重新查找
    mapping: {
        '.html': 'nunjucks',  //这个是配置渲染文件的后缀名,我一般都是喜欢html
        },
    // defaultExtension: '.html'  //设置默认的模板引擎后缀,设置后就可以在调用时省略,这个我一般都是不使用的
};
    //在config里面设置大家都共用的属性
    config.address = "http://192.168.1.102://8888"

  return {
    ...config,
    ...userConfig,
  };
};

这下面这部分才是修改地址和端口的关键
config.cluster = {
listen: {
path: ‘’,
port: 8888,
hostname: ‘192.168.1.102’
}
};

config.keys = appInfo.name + ‘csrf_tonken’;这个是cookie安全键,是一定要设置的,

发布了28 篇原创文章 · 获赞 14 · 访问量 6786

猜你喜欢

转载自blog.csdn.net/weixin_42304193/article/details/104544863