关于egg.js的初次学习——controller和router的基本使用

今天学习了egg最基本的controller和router的使用。

首先什么是controller和router呢?controller就是经典的MVC(module,view,controller)架构中的controller层,主要用来解决实际的业务逻辑。

router主要是用来分发来自页面的请求,然后把这个请求交给某个controller去做。此处来一个小栗子

1 module.exports = app => {
2   app.get(‘/‘, ‘render.ejs‘);
3 };

这里第二行的第一个参数  ‘/’就是说请求的路径是根目录的时候,并且方式是 GET 的时候,就会调用第二个参数对用的controller。

egg有个特别好的地方,就是目录结构非常清晰,第二个参数实际上表达的意思是,调用路径为‘app/controller/render.js‘ 中的ejs 这个方法

1 exports.ejs = function *(ctx){
2   yield ctx.render(‘hello.ejs‘,{
3     data: ctx.params.id + ctx.query.id,
4     _csrf: ctx._csrf
5   });
6 };

第一行,我暴露的就是一个名字叫ejs的方法,只要访问了根目录,路由就会将处理这次请求的任务交给这个方法来做。

这个方法的意思就是启用一个模板,名字叫 ‘hello.ejs’,它实际的位置是在app/view/ 下面的,这也是框架规定死的。

时间: 2024-12-10 17:13:33

关于egg.js的初次学习——controller和router的基本使用的相关文章

Egg.js搭建后台服务API

写在前面的话 最近在学习Egg.js,它是阿里推出的基于Koa的node开发框架,为企业级框架和应用而生.Egg.js 的官方文档已经很完善了,想学习Egg.js的可以直接查看官方文档. 因为平常开发都是前后端分离的模式,就想着使用Egg创建后台服务,写一套API接口配合其他的项目.该项目的技术栈用到了Egg.js.MongoDB.mongoose.这篇文章记录一下我写注册登录模块和用户中心模块的过程,目的是及时归纳学习过程,锻炼文档能力,和大家进行分享交流,共同进步. 项目地址: Egg-AP

JS做深度学习1——偶然发现与入门

JS做深度学习1--偶然发现与入门 不久前,我初次涉猎了Node.js,并且使用它开发了毕业设计的WEB模块,然后通过在Node中调用系统命令执行Python文件方式实现了深度学习功能模块的对接,Python代码的介入,让JS代码显得很累赘,我说过我很爱ES6以后的JS并且很讨厌Python的代码风格,无奈,我在写毕设那会Google还没有正式发布基于JS的深度学习框架,好吧,其实我对这事已经抱怨了很久,但是我的"呼声"仿佛很快就被Google"认同了"(滑稽),就

node egg.js使用superagent做文件转发

使用 egg.js + superagent 进行文件上传转发 // app/controller/file.js const Controller = require('egg').Controller; const fs = require('fs') const request = require('superagent') const sendToWormhole = require('stream-wormhole') const toArray = require('stream-t

使用egg.js和egg-sequelize连接mysql

1.通过 egg-init 初始化一个项目: egg-init --type=simple --dir=sequelize-projectcd sequelize-projectnpm i 2.安装并配置 egg-sequelize 插件(它会辅助我们将定义好的 Model 对象加载到 app 和 ctx 上)和 mysql2模块: 3. 在 config/plugin.js 中引入 egg-sequelize 插件 exports.sequelize = { enable: true, pac

node.js框架StrongLoop学习笔记(一)

node.js框架StrongLoop学习笔记(一) 本人在用node.js做手机后台,查找框架发现StrongLoop挺适合,可是却发现没有中文教程,于是在自己学习时,做一下笔记,以方便其他像我一样的人参考(本人的英语水平非常差,只能一点点试着做,并记录下来,如果大家发现问题,请通知我好更正,谢谢了!).所有操作都是在CentOS7-x64,Node.js 0.12.2下完成的. nodejs框架StrongLoop学习笔记一 安装StrongLoop 创建项目 安装数据库驱动 配置数据库连接

4.Knockout.Js官网学习(事件绑定)

前言 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用在button,input和连接a上,但是可以在任意元素上使用. 简单示例 <h2>ClickBind</h2> <div> You've clicked <span data-bind="text: numberOfClicks"></span> times <button data-bind="

Knockout.Js官网学习(系列)

1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js官网学习(visible绑定) Knockout.Js官网学习(text绑定) Knockout.Js官网学习(html绑定.css绑定) Knockout.Js官网学习(style绑定.attr绑定) 4.Knockout.Js官网学习(click绑定) Knockout.Js官网学习(event

js callee,caller学习

原文地址:js callee,caller学习 /* * caller 返回一个对函数的引用,该函数调用了当前函数. * 如果函数是由顶层调用的,那么 caller包含的就是 null . * 如果在字符串上下文中使用 caller属性,那么结果和 functionName.toString * 一样,也就是说,显示的是函数的反编译文本. * 在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象.如果该函数当前未被调用,或并非被其他函数调用,则caller为

《JS权威指南学习总结--开始简介》

本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 简介 <JS权威指南学习总结--1.2客户端JS> 是:第二部分客户端JS 各章节重点 简介