• 首页
  • nodejs
  • node.js 环境下使用 sails 框架搭建服务

node.js 环境下使用 sails 框架搭建服务

sails.png

什么是Sails

Sails.js使部署一个定制的企业级Node.js应用变成一件极为简单的事,它的设计模仿了像Ruby on Rails这样的MVC框架,但是更支持现代应用的开发需求:可扩展的数据驱动层的API,面向服务的架构,Sails.js允许你方便快速得使用Node.js生成应用,并通过MVC模式来使管理和维护代码变得更加简单.

使用 Sails

Sails.js 依赖 node.js ,使用时确保你的环境安装了 node.js 环境.

npm install sails -g

搭建项目

安装了 node.js 和 sails.js 的环境,只需要一条命令即可创建 sails 框架项目.

sails new sailsProject

然后我们使用 IDE 打开此项目:

├── Gruntfile.js ├── README.md ├── api │   ├── controllers │   ├── models │   ├── policies │   ├── responses │   └── services ├── app.js ├── assets │   ├── favicon.ico │   ├── images │   ├── js │   ├── robots.txt │   ├── styles │   └── templates ├── config │   ├── blueprints.js │   ├── bootstrap.js │   ├── connections.js │   ├── cors.js │   ├── csrf.js │   ├── env │   ├── globals.js │   ├── http.js │   ├── i18n.js │   ├── local.js │   ├── locales │   ├── log.js │   ├── models.js │   ├── policies.js │   ├── routes.js │   ├── session.js │   ├── sockets.js │   └── views.js ├── node_modules ├── package.json ├── tasks │   ├── README.md │   ├── config │   ├── pipeline.js │   └── register └── views ├── 403.ejs ├── 404.ejs ├── 500.ejs ├── homepage.ejs └── layout.ejs

通过目录树我们看到 sails 帮我们生成了很多文件, sails 有约定的文件夹和约定的文件目录,甚至是文件名, 所以sails 框架的宣传语 “约定优于配置”

下面我们来罗列主要的文件目录及文件:

api/

api :目录下是你要构建应用的核心所在,常说的MVC的设计结构就体现在这里 api/controllers :控制层,该层是Http请求的入口。Sails官方建议该层只处理请求的转发和页面的渲染,具体的逻辑实现应该交给Service层。 api/models :模型层,在Sails中,对于Model采用的是充血模型,除了可以在模型中定于属性之外,还可以定义包含逻辑处理的函数在Sails中,所有Model都可以全局性访问。 api/policies :过滤层,该层在Controller层之前对Http请求做处理,在这一层中,可以定于一些规则来过滤Http请求,比如身份认证什么的。 api/responses :http响应的方法都放这里,例如服务器错误、请求错误、404错误等,定义在responses文件夹里面的方法,都会赋值到controller层的req对象中。 api/services :服务层,该层包含逻辑处理的方法,在Sails中,所有Service都可以全局性访问。

views/

存放视图模版文件的地方,Sails默认是提供ejs模版引擎的,如果你愿意,你可以换成jade、handlebars或者任何你喜欢的模版引擎。

assets/

资源文件夹,在Sails启动的时候,会启动某一个Grunt任务,把assets文件夹里的内容或压缩或编译或复制到根目录下的.tmp目录,这是前端可以直接通过路由访问的资源,HTML、JS、CSS以及图片等静态资源都放在这里了

config/

配置文件夹,在Sails启动的时候,会加载该文件夹里的文件,并赋值在全局对象sails.config中,所以能够在任何一个地方都能用到。在用Sails开发,会经常跟这个文件夹里的文件打交道,从config的构成很容易知道Sails都提供哪方面的功能。

config 目录下文件介绍

env 此文件夹代表环境变量: 不同的环境变量会对应不同的配置文件. development.js – 开发环境 production.js – 生产环境

locales 文件夹 下是国际化语言文件

blueprints.js blueprints配置文件, blueprints 是sails 框架的特色之一,可以根据 controller 里面的方法自动生成 restful 格式请求路由.

connections.js 存储介质配置文件, sails 支持多种关系型数据库和非关系型数据库.

routes.js 自定义路由配置文件

tasks/

Sails自带的项目自动化工具是Grunt,而Grunt的配置和任务注册都放在这个文件夹里了。这里已经提供了通常会用到的CSS编译、JS压缩、文件合并,更改检测等等任务,当然如果没有自己需要的,还能扩展。

app.js

Sails的启动文件,无论是$ sails lift命令或者$ npm start命令都会运行该文件。

Gruntfile.js

grunt 自动化构建工具的配置文件

使用sails 实现MVC

MVC是流传在开发环境中非常流行的一种开发模式. 包含 model ,View ,Controller 但是在 Sails 框架中,不得不说的还有 Service 和 Policy

下面我们通过 sails 命令来生成 model , controller

生成 model

sails generate model MODEL_NAME

这时你的 api/models/ 会生成刚才你生成的 MODEL_NAME 文件,但是里面没有一个属性.

你也可以在生成的时候指定 model 里面的属性名称及类型.

sails generate model TestUser name:string email:string password:string

生成 controller

sails generate controller TestUser

这时生成的 TestUserController.js 里没有方法

我们可以在生成的时候指定方法.

sails generate controller TestUser index show edit delete

这时生成的 TestUserController.js 里面会有上面的4个方法,但是没有发放实现,需要我们来补充.

同时生成 model 和 controller

sails generate api TestUser

这时会在 api 目录下 model 文件下生成 TestUser.js 文件和 controller 目录下 TestUserController.js

具体更加详细是使用,需要逐步了解和学习,后面会继续分享.

出自:node.js 环境下使用 sails 框架搭建服务



回到顶部