Node.js Sails框架入门:项目结构、MVC实现与日志机制详解

作者:栖木

时间:2026-10-29

浏览:518

本文详细介绍Node.js中Sails框架的安装与基础使用。从npm安装到项目创建,解析基于MVC理念的项目目录结构。通过Controller与View的交互示例展示视图渲染流程,并深入讲解Sails内置日志系统的分级配置与调用方法,帮助开发者快速搭建Web应用基础架构。

文章目录

本文首先介绍Sails框架的安装步骤,随后深入解析Node.js与Sails的日志机制。

Sails框架安装与项目初始化

Sails是一个基于Node.js的中间件架构,旨在简化Web应用程序的构建。其官方网站为http://www.sailsjs.org/。Sails主要建立在Express框架之上,并扩展了新的功能组件。接下来将介绍具体的安装方法。

一、安装Sails

npm -g install sails

二、创建Sails项目

sails new testProject

三、启动项目

cd testProject sails lift

基于MVC的项目结构与视图渲染

四、项目结构:基于MVC理念

Sails框架安装与项目初始化

项目结构由Model(模型)、View(视图)和Controller(控制器)组成。其调用关系与.NET MVC类似,但存在差异:.NET MVC中的Model主要指ViewModel,而Sails中的Model主要指数据模型(即.NET中的Entity),它是数据表的抽象。在数据持久化方面,Sails提供了多种支持,包括本地文件、MySQL、MongoDB、Redis等,对于SQL Server也可通过第三方组件实现支持。

五、通过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视图内容

<p>从action返回的对象-title:<%=title%></p> <p>从action返回的对象-engTitle:<%=engTitle%></p>

调用结果如下

Sails框架安装与项目初始化

访问index页面时,可以直接使用控制器名称。

Sails框架安装与项目初始化

若其他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,即数据持久化机制,进行对数据表的CRUD操作,敬请期待。

Sails日志机制与配置

附:Node.js与Sails日志机制

Sails的日志机制让人联想到log4net,两者在分级记录方面相似。Sails的使用更为便捷,无需处理单例或持久化细节,直接调用sails.log.级别("日志内容")即可。它可视为分类且带颜色区分的console.log补充。

一、Sails.log的日志级别

Priority level Log fns visible
0 silent N/A
1 error .error()
2 warn .warn(), .error()
3 debug .debug(), .warn(), .error()
4 info .info(), .debug(), .warn(), .error()
5 verbose .verbose(), .info(), .debug(), .warn(), .error()
6 silly .silly(), .verbose(), .info(), .debug(), .warn(), .error()

二、日志测试示例

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框架安装与项目初始化

Sails的日志功能确实十分便捷。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章