这里有新鲜出炉的 Node.js 教程,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
Sails 是一个 Node.js 的中间架构,很方便的帮助我们搭建 web 应用程序。还有 node.js 与 Sails 日志机制在本文中也讲到了,需要的朋友可以一起学习下
本文首先从 sails 的安装讲起接下来介绍 node.js 与 Sails 的日志机制,小伙伴们已经迫不及待要看下文了吧,好吧。
Sails 是一个 Node.js 的中间件架构,帮助我们很方便的构建 WEB 应用程序,网址:http://www.sailsjs.org/,它主要是在 Express 框架的基础上发展起来的,扩展了新的功能组件,下面我们来看一下安装方法
一 安装 Sails
npm -g install sails
二 建立一个 Sails 的项目
sails new testProject
三 启动项目
cd testProject sails lift
四 项目的结构,基于 MVC 理念
我们可以看到它与是由 model,view,controller 组成,它们之间的调用关系与. net mvc 十分类似,只不过. net mvc 里的 model 主要是指 viewmodel,而在 sails 里 model 主要是数据模型,即. net 里的 Entity,它是数据表的一种抽象,对于数据的持久化,sails 提供了很多种,如本地文件,mysql,mongodb,redis 等,对于 sqlserver 我们也可以找到第三方的组件。
五 通过 controller 的 action 来渲染视图
我们在. net mvc 里,大家都知道视图是通过 action 的 render 方法进行渲染的,其时 sails 也是这样的,可以使用原生的 render,也可以使用封装好的 view 方法,而在视图上直接使用你的 action 返回的对象即可。
controller/action 的内容
- module.exports = {
- index: function(req, res) {
- return res.view("test/index", {
- title: "大叔",
- engTitle: "Lind"
- });
- //return res.view("view_name",data)//view_name参数为空表示用当前的action
- }
- };
view-ejs 的内容
从 action 返回的对象 - title:<%=title%>
从 action 返回的对象 - engTitle:<%=engTitle%>
调用的结果如下
如果进入 index 页面可以直接写控制器名称
如果其它 action 希望走 / test 这样的路由,需要在 config/route.js 里进行配置, 如为 add 这个 action 添加路由为 / user,它的设置如
'get /user': {view:'user/add',locals: {layout: null}}, 'get /test':{view:'test/index',locals:{layout:null}}
好了,到这样一个最简单的 MVC 的 DEMO 就做好了,下一节我们将引用 Model,即数据持久化的机制,进行对数据表的 curd 操作,敬请期待...
ps:Node.js 与 Sails~ 日志机制
看到 Sails 的日志就会想起来 log4net,确实它们在很多地方是相似的,都是采用分级别记录的方式,而 sails 我觉得在使用上更加方便,它不需要我们做多于的事情,直接 sails.log. 级别 ("你的日志内容") 就搞定了,你不需要关心什么单例,或者持久化方式,Sails 的日志只是对 console.log 的一种补充,可以理解为分了类之后的 console.log, 并有颜色的区分,呵呵。
一 我们来看一下 sails.log 的日志级别
Priority | level | Log fns visible |
---|---|---|
0 | silent | N/A |
1 | error |
|
2 | warn | ,
|
3 | debug | , ,
|
4 | info | , , ,
|
5 | verbose | , , , ,
|
6 | silly | , , , , ,
|
二 开始测试我们的日志
sails.log('debug 日志!');//sails.log.debug("debug") sails.log.error('error 日志!'); sails.log.warn('warn 日志!','request aborted.'); sails.log.info('info 日志!'); sails.log.verbose('verbose 日志!'); sails.log.silly('silly 日志!');
三 配置项目的日志级别,位于 config/log.js
module.exports.log = {level:'info'};
四 从结果中看到,日志记录时,只记录比当前配置级别低的日志内容
怎么样,sails 的日志挺方便吧!
来源: http://www.phperz.com/article/17/0429/269141.html