[关闭]
@Yori 2015-01-21T06:58:35.000000Z 字数 1958 阅读 2634

Sails.js初体验

JavaScript


[注:本文翻译自:http://www.ultrasaurus.com/2015/01/getting-started-sailsjs/?utm_source=nodeweekly&utm_medium=email
本文综合以上两篇,因译者水平有限,如有不当之处欢迎指出]


Sails.js是一个基于Node.js的MVC框架。Rails开发者会发现它的组件非常熟悉,不过我认为Sails在利用库和框架集成方面做的非常出色。除了基于Node.js,它还深度依赖于Express来处理HTTP请求,事实上每个请求对象都是一个Express请求,此外,Sails对socket.io的依赖性也想当不错。

安装

  1. brew install node
  2. npm install sails -g
  3. sails -v

注:Linux安装需要sudo权限

创建一个新项目

  1. sails new testProject
  2. cd testProject
  3. sails lift

在浏览器中访问 http://localhost:1337,你会看到一些关于如何接下去的文档和提示。

创建一个 REST API

  1. sails generate api user
  2. sails lift

那么现在在我们的浏览器中,访问 http://localhost:1337/user, 将会返回一个包含了我们用户信息的JSON包,只不过现在它还是空的。

默认情况下,我们的项目配置了动态使用硬盘数据库平台,这可以让我们通过浏览器来创建models:

默认路由配置在config/blueprints.js中,所以如果你只是想要为你的API使用更标准的REST-FUL语法的话,可以关闭那些快捷的路由。而如果你熟悉Rails并喜欢这样做的话,你大可以同样告诉Sails在同样的配置文件下添加这些姓名信息。

现在,我们可以重新访问http://localhost:1337/user了。
在这你可以看到你的用户们

[
 {
"name": "Tim",
"createdAt": "2014-12-21T18:20:19.382Z",
"updatedAt": "2014-12-21T18:20:19.382Z",
"id": 1
 },
  {
"name": "Judy",
"createdAt": "2014-12-21T18:20:26.269Z",
"updatedAt": "2014-12-21T18:20:26.269Z",
"id": 2
  },
  {
"name": "Lee",
"createdAt": "2014-12-21T18:20:29.338Z",
"updatedAt": "2014-12-21T18:20:29.338Z",
"id": 3
 },
  {
"name": "Maggie",
"createdAt": "2014-12-21T18:20:32.879Z",
"updatedAt": "2014-12-21T18:20:32.879Z",
"id": 4
  }
]

查看Sockets

打开你浏览器的JavaScript控制台,你会看到这个

   |>
 \___/
sails.io.js:200  `io.socket` connected successfully.

在控制台中输入这个来查看用户信息

io.socket.get('/user', {}, function (users) {console.log(users)})

监听用户Model的变化

  io.socket.on('user', function messageReceived(event) {
console.log('New comet message received :: ', event);
 });

打开另一个浏览器,再创建一个用户

http://localhost:1337/user/create?name=Eva

在第一个浏览器中你会看到这样的提示

New comet message received ::
Object {model: "user", verb: "create", data: Object, id: 5}

最后,值得一提的是Sails.js的文档写的非常好,但是在最新的0.10版本发布后发生了很多的变化而他们的介绍视频依然落后了几个版本,为了更好的了解新版本中的变化,原文作者在github上分享了关于新语法的介绍,其中还包括了上面的教程和一些其他细节,这里是github地址.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注