学到了哪些:
1、Egg.js的使用
-
环境需满足:
- 操作系统:支持 macOS,Linux,Windows
- 运行环境:建议选择 LTS 版本,最低要求 8.x。
-
脚手架搭建主体架构:
$ mkdir egg-example && cd egg-example $ npm init egg --type=simple $ npm i
-
启动项目:
$ npm run dev //打开本地服务 http://localhost:7001 进行查看
注释:因为不是用于细致学习,而是为了快速入门,所以不做详细搭建;如果想要一步一步搭建,请参考:https://eggjs.org/zh-cn/intro/quickstart.html
-
使用 Nunjucks 来渲染,主要是靠插件 egg-view-nunjucks来完成:
$ npm i egg-view-nunjucks --save //egg-view-nunjucks插件的安装
-
当然经过亲测,本机存在先后输入顺序:
-
$ mkdir egg-example && cd egg-example //创建项目文件并进入 $ npm init egg --type=simple //快速初始化 //先不要下载依赖包,否则可能会报错 $ npm i egg-view-nunjucks --save //安装插件 $ npm i //安装依赖 $ npm run dev //打开本地服务 http://localhost:7001 进行查看
-
-
如果不小心先下载了依赖,可进行如下操作:
cnpm install -g rimraf //先安装rimraf模块 rimraf node_modules //快速卸载依赖包
-
开启插件:
// config/plugin.js module.exports = { nunjucks: { enable: true, package: 'egg-view-nunjucks', }, };
// config/config.default.js exports.keys = <此处改为你自己的 Cookie 安全字符串>; // 添加 view 配置 exports.view = { defaultViewEngine: 'nunjucks', mapping: { '.tpl': 'nunjucks', //是.tpl还是.html根据项目需求更改 }, };
-
添加 Controller
// app/controller/news.js const Controller = require('egg').Controller; class NewsController extends Controller { async list() { const dataList = { list: [ { id: 1, title: 'this is news 1', url: '/news/1' }, { id: 2, title: 'this is news 2', url: '/news/2' } ] }; await this.ctx.render('news/list.tpl', dataList); } } module.exports = NewsController;
-
配置 Router
// app/router.js module.exports = app => { const { router, controller } = app; router.get('/', controller.home.index); router.get('/news', controller.news.list); //该行为新增行,其中()里面的含义分别为路由,控制器(即对应的Controller下的async后的方法名称) };
我的理解:通过Router中的路由触发Controller,并将数据传递给视图层,进行数据渲染。(可能理解存在误解,如果有错误,还望指正)
暂时就这些,待更……
目录结构:
详细结构及内定含义可参考:https://eggjs.org/zh-cn/basics/structure.html
根据公司已有项目作为参考,可以尝试找到公司项目规范。
还有哪些思维方式需要更正:
1、有时候解决问题真的不能换方式绕过去,必须想办法解决。比如说利用Git拉取项目,不要直接下载。
2、Git拉取项目后一直报某个文件资源获取失败,重新下载,更名并替换。
3、关于文件的权限问题
4、排查页面Bug:(新手上路,难免会理解有误,如果发现,还望指正,及时整改)
-
根据页面报错信息,查看相应的文件,包括路由、.njk文件、Controller及引用块
-
对模块进行逐块删除、逐步排查,再看页面报错是否发生变化。错误变了,说明有一定的关系。
g:(新手上路,难免会理解有误,如果发现,还望指正,及时整改) -
根据页面报错信息,查看相应的文件,包括路由、.njk文件、Controller及引用块
-
对模块进行逐块删除、逐步排查,再看页面报错是否发生变化。错误变了,说明有一定的关系。
-
根据项目中同页面(或文件)出现的类似的方法,对内容进行比对并尝试进行删减操作,查看页面变化。