Home > Web Front-end > JS Tutorial > Study guide of sails framework_node.js

Study guide of sails framework_node.js

WBOY
Release: 2016-05-16 16:25:00
Original
1590 people have browsed it

Last week I came into contact with the sails framework by building a CMS system and learned some ORM concepts. This week I started to delve into the background data interaction and found that the twenty framework's data structure has been designed on sails (such as node and category). I have to say that my senior is really awesome. However, the complexity has also increased. My task in the DTree project is to use sails to interact with business processes and databases. The rest of the week is all about using sails.

Introduction to sails

Sails, like ruby ​​on rails, is a framework designed to make web development easier. As far as I know during this period, it completely inherits some APIs of Express&Socket.io, and uses waterline (ORM) for unified database interaction, so that CRUD operations can be completed in different database environments without directly modifying the code; and The backbone framework synchronizes front-end and back-end data, and uses policies middleware for secure verification and interaction. Its own blueprints can interact with data through the RESTfull API without coding a single line in the front-end and back-end.

Socket.io & Express

I have learned these two things during the front-end time, one is websock communication, and the other is processing HTTP requests. sails did not redesign it but directly used these two tools to handle these functions, which greatly reduced the learning cost. Socket.io triggers messages on both the server and client sides, listens for messages, and acts accordingly.

Copy code The code is as follows:

`
//Server side
io.sockets.on("connection", function(sock){
sock.emit("normalMessage",{a:"c"});
});
//Customer service
sock.on("normalMessage", function(json){...});
`

The role of Express lies in routing operations, such as app.get('/login', function(req, res){});.
Sails Blueprints & Backbone
In web development, CRUD is a type of similar operation, such as get/post in http and select/insert in the database. The blueprint API of sails and the backbone framework of js both use a unified function (such as findOne), so that when the program establishes the model and the corresponding controller, the internal logic has already been established. For example, the commonly used users model in sails has a self-built controller to transmit and store users data. All we need to pay attention to is the specification of file names and business processes. If you want to override (overload) the original method, it is also possible. After we set the action and controller in the routes in the config folder, we can add the functions we need in the corresponding controller.

Waterline
The API of sails, a dependency package, is used to interact with the database, such as create(), findOne(), update(), etc. As mentioned before, we can call these methods directly without worrying about different database tools. For example, when entering data

Copy code The code is as follows:

`
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);
}
`

The system defaults to the local file system to save data. If we need to choose mysql or mongoDB. Just modify it in the configuration file and select the adapter of the database to interact with the data.

Policies

Middleware applied on the controller, running before the http request is issued. Identity control can be implemented, for example, you can only take next actions after logging in.

Copy code The code is as follows:

`
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 has been successfully used, but more work needs to be done on this. Only by laying a solid foundation can we achieve specific needs. So I have to continue learning, find more routines to learn sails in depth, and also know the limitations of this framework.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template