Node.js与Sails~自定义响应体responses
2015-10-14 11:03
507 查看
回到目录
在Node.js里,你可以控制请求和响应,自己可以定义自己的响应方式,如对文本如何响应,对json如何响应,对图像流如何响应等等,而这些在Sails架构里,变得更加容易和清晰了,它位于项目的api/responses目录下,你可以定义自己的响应体。
其实sails为我们封装了一些标准的相应,如view方法,这也就是一种响应体,它可以将文本,json对象渲染到指定的视图上,而我们自己可以效仿它,实现自己的响应体,下面代码是官方给出的一个实例,它的方法名为myResponse,这是sails架构一个定义类模块的方式,即JS文件名不是你的类名,我们在程序里可以通过res.myResponse("你的响应内容")去调用它,具体代码如下
它实现了普通文件和json对象的两种响应方式,我们在代码里调用它和view类是一样的
通过执行http://localhost:1337/test/err得到下面的结果
上面的功能类似于c# mvc里的重写ViewResult,都是对输出响应流进行控制的。
回到目录
在Node.js里,你可以控制请求和响应,自己可以定义自己的响应方式,如对文本如何响应,对json如何响应,对图像流如何响应等等,而这些在Sails架构里,变得更加容易和清晰了,它位于项目的api/responses目录下,你可以定义自己的响应体。
其实sails为我们封装了一些标准的相应,如view方法,这也就是一种响应体,它可以将文本,json对象渲染到指定的视图上,而我们自己可以效仿它,实现自己的响应体,下面代码是官方给出的一个实例,它的方法名为myResponse,这是sails架构一个定义类模块的方式,即JS文件名不是你的类名,我们在程序里可以通过res.myResponse("你的响应内容")去调用它,具体代码如下
/** * api/responses/myResponse.js * * This will be available in controllers as res.myResponse('foo'); */ module.exports = function(message) { var req = this.req; var res = this.res; var viewFilePath = 'mySpecialView'; var statusCode = 200; var result = { status: statusCode }; // Optional message if (message) { result.message = message; } // If the user-agent wants a JSON response, send json if (req.wantsJSON) { return res.json(result, result.status); } // Set status code and view locals res.status(result.status); for (var key in result) { res.locals[key] = result[key]; } // And render view res.render(viewFilePath, result, function (err) { // If the view doesn't exist, or an error occured, send json if (err) { return res.json(result, result.status); } // Otherwise, serve the `views/mySpecialView.*` page res.render(viewFilePath); }); };
它实现了普通文件和json对象的两种响应方式,我们在代码里调用它和view类是一样的
module.exports={ index: function (req, res){ return res.view({title:"大叔",engTitle:"Lind"}); //return res.view("view_name",data)//view_name参数为空表示用当前的action }, err:function(req,res){ return res.myResponse({errCode:0,error:"产生错误"}); } };
通过执行http://localhost:1337/test/err得到下面的结果
上面的功能类似于c# mvc里的重写ViewResult,都是对输出响应流进行控制的。
回到目录
相关文章推荐
- nodejs 遍历文件夹,文件
- NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
- nodemon
- Node.js开发入门—Stream用法详解
- 如何使用npm发布Node.JS程序包
- Node.js与Sails ~项目结构与Mvc实现及日志机制
- node进程管理——pm2
- nodejs + cardova + ionic安装环境(持续更新)
- 4.Delete Node in a Linked List
- Swap Nodes in Pairs
- poj 1815 dinic+枚举 (node-disjoint path个数)
- sublime3.0配置node.js环境
- 程序员使用Node的十个技巧
- NodeJS学习笔记
- forever 守护nodejs
- 一步一个坑---初学nodejs第一天
- 学习小笔记---nodejs
- nodejs npm install全局安装和本地安装的区别
- WRTnode控制GPIO备忘笔记
- [Node.js]001.安装与环境配置