当前位置:首页 > node技术文章 > sails框架的学习指南

关于sails框架的学习指南

  • 发布时间:
  • 作者:码农之家原创
  • 点击:72

这篇文章主要知识点是关于sails、nodejs、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Node.js区块链开发
Node.js区块链开发完整中文版
  • 类型:Node.js大小:23.9 MB格式:PDF作者:朱志文
立即下载

sails框架的学习指南

上周通过搭建CMS系统接触到了sails框架,知道一些ORM的概念。这周开始深入后台数据交互,发现twenty框架的数据结构在sails上又设计了一番(比如node、category),不得不说师哥就是厉害。不过复杂度也提高了。而我在DTree项目中的任务就是使用sails来进行业务流程和数据库的交互。这周接下来的时间就是使用sails了。

sails简介

sails如同ruby on rails一样,也是一种为了使web开发变得简单的框架。就我这段时间的了解,其完全继承Express&Socket.io的一些API,并且使用了waterline(ORM)进行统一地数据库交互,使得可以在不同的数据库环境中无需直接修改代码即可完成CRUD操作;与backbone框架同步前后端的数据 ,使用policies中间件来进行安全验证交互 自身的blueprints在前后台中无需码一行即可通过RESTfull API进行数据交互。

Socket.io & Express

前端时间学习过这两样东西,一个是websock通信,一个是处理HTTP的请求。sails并没有从新设计而是直接使用这两个工具来处理这些功能,在学习成本上减少了许多。Socket.io在服务器和客户端两边触发消息、监听消息并相应作出操作。

 

复制代码 代码如下:

 `
 //服务器端
 io.sockets.on("connection", function(sock){
 sock.emit("normalMessage",{a:"c"});
 });
 //客服端
 sock.on("normalMessage", function(json){...});
 `

 

Express的作用就在于路由操作,比如app.get('/login', function(req, res){});。
Sails Blueprints & Backbone
在web开发中,CRUD是一类相似操作,比如在http中get/post,数据库中的select/insert这类。sails的blueprint API和js的backbone框架都使用一类统一的函数(比如findOne),使得程序在建立了model和相应的controller时,内在逻辑就已经建立。比如常用的users model在sails就自建了controller来进行users的数据传递和存储。我们需要注意的只有文件名的规范和业务流程即可。如果你要覆盖(重载)原有方法也是可以的。当我们在config文件夹中的routes设置好action和controller之后,在对应的controller中可以添加自己需要的功能。

Waterline
sails这个依赖包的API是用来与数据库交互的,比如create()、findOne()、update()等,正如前面所说,我们无需在意不同的数据库工具直接统一调用这些方法即可。比如输入数据时

 

复制代码 代码如下:

`
Users.create({username: username, password: password}).exec(function(error, user) {
 if (error) {
  res.send(500, {error: "DB Error"});
 } else {
  req.session.user = user;
  res.send(user);
 }
`

 

系统默认的是本地文件系统保存数据,我们如果需要选择mysql或者mongoDB。只需在配置文件中修改一下,选择数据库的adapter就能进行数据交互。

Policies

应用于controller上的中间件,在http请求发出之前运行。可以实现身份控制,比如你只有登录才能进行接下来的动作。

 

复制代码 代码如下:

`
if(req.session.user){
    var action = req.options.action;
    if(action == "create"){
     req.body.userId = req.session.user.id;
        req.body.username = req.session.user.username;
    }
    next();
}else{
    res.send("You Must Be Logged In", 403);
}
`
next

 

sails成功上手,不过还要在这个上面多下功夫。把基础打牢才好实现具体需求。所以接下来还要继续学习,多找例程深入学习sails,也要知道这个框架的局限性。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

详细介绍python实现自动登录后台管理系统

Vue+ElementUI项目怎样使用webpack输出MPA

ThinkPHP 模板substr的截取字符串函数实例讲解

分享element UI upload组件上传附件格式限制方法

实例详解python连接mongodb密码认证

展开 +

收起 -

node 相关电子书
学习笔记
网友NO.596666

nodejs中实现路由功能

初学Node,发现了与自己之前的观点完全不同的场面——你眼中的JavaScript,是干什么用的呢?特效?or 只是与客户端的交互?可以说,JavaScript最早是运行在浏览器中的,然而你要这样想,浏览器只是你提供了一个上下文(context),它定义了 使用JavaScript可以做什么,这里可以想成类似的一个企业,企业定义了你可以在这里做什么,但是并没有说太多关于JavaScript语言本身可 以做什么。事实上,作为一门完整的语言,JavaScript可以使用在不同的上下文中,体现出不同的能力。这里所讲到的Nodejs其实说白了就是提供 的一个上下文,一个运行环境,它允许在后端(脱离浏览器环境)来运行JavaScript代码。 路由选择的核心是路由,顾名思义,路由指的就是我们要针对不同的URL有不同的处理方式,例如处理/start的业务逻辑和处理/upload模块 的业务;逻辑就是不一致……

网友NO.136383

Nodejs之TCP服务端与客户端聊天程序详解

TCP是用来计算机之间进行通信的,通过编写客户端和服务端聊天的代码,对于服务器与客户端的工作步骤有了深刻的了解,在这里根据了不起的Node.js一书来总结一下。 TCP聊天程序需要用到Nodejs中的net模块,net模块是对TCP的封装,用于创建TCP服务端与客户端的。 服务器端 count:连接的客户端个数; users:用于存储客户端用户昵称的对象,对象值都为该客户端的Socket,Socket是一个接口,用于服务端与客户端通信。 net.createServer:是用来创建TCP服务器,传递的函数为connetion事件的监听器,connection事件在有客户端连接上服务器后触发,传进去的参数conn是一个socket,即net.Socket的实例,是既可读也可写的。 conn:是回调函数的参数,每一个客户端对应的conn都是不一样的,服务器会自动识别。 conn.write:是将数据发送到客户端上。 nickname:是额户端的昵称,当……

网友NO.743107

nodejs中转换URL字符串与查询字符串详解

一个完整的URL字符串中,从"?"(不包括?)到"#"(如果存在#)或者到该URL字符串结束(如果不存在#)的这一部分称为查询字符串. 可以使用Query String模块中的parse方法将该字符串转换为一个对象,parse方法的使用方式如下所示: querystring.parse(str,[sep],[eq],[options]); str表示被转换的查询字符串, sep.字符串中的分隔符,默认是nbsp;var querystring=require("querystring"); var str="username=guoyansisex=male"; var res=querystring.parse(str); console.log("1:%j",res);//1:{"username":"guoyansi","age":"40","sex":"male"} res=querystring.parse(str,"!"); console.log("2:%j",res);//2:{"username":"guoyansisex=male"} res=querystring.parse(str," console.log("3:%j",res);//3:{"username":"guoyansi","age":"40","sex":"male"} str="username=guoyansi!age=40!sex=male"; res=querystring.parse(str,"!"); console.log("4:%j",res);//4:{"username":"guoyansi","age":"40","sex":"male"} res=querystring.parse(str,"!","="); console.log("5:%j",res);//5:……

网友NO.724080

nodejs入门教程四:URL相关模块用法分析

本文实例讲述了nodejs入门教程之URL相关模块用法。分享给大家供大家参考,具体如下: 1.URL 模块:用于 URL 处理与解析 1)URI 与 URL : URI,是uniform resource identifier, 统一资源标识符 ,用来唯一的标识一个资源。 URL是uniform resource locator, 统一资源定位器 ,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate(定位)这个资源。 2)URL模块中的方法: ① url.format(urlObject) :将一个 url 对象转为一个 url字符串 ② url.parse(urlString,[Boolean],[Boolean]) :将 url 字符串地址转为一个对象 第一个Boolean true:则 query 属性总会通过 querystring 模块的 parse() 方法生成一个对象。 false:则返回的 URL 对象上的 query 属性会是一个未解析、未解码的字符串。 默认为 false 第二个Boolean true:则 // 之后至下一个 / 之前的字符串会被解析作为 host。 例如,//foo/bar 会被解……

网友NO.416842

详解使用PM2管理nodejs进程

pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。 它非常适合IaaS结构,但不要把它用于PaaS方案(随后将开发Paas的解决方案). 和使用node index.js方式比较,优点: 1 一个命令窗口就可管理多个node服务器进程。而node命令多个进程就需要开多个窗口。 2 关闭命令窗口,node进程仍然会运行。而node命令运行的关闭窗口后,进程也就关闭了。 一 安装PM2 npm install -g pm2 二 用pm2 启动index.js pm2 start index.js --name tank --name tank是给这个进程取个名字 三 其他pm2命令 安装npm install -g pm2用法$ npm install pm2 -g # 命令行安装 pm2 $ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js # 也可以把'max' 参数传递给 start # 正确的进程数目依赖于Cpu的核心数目$ pm2 start app.js --name my-api # 命……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757