Study guide of sails framework_node.js
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.
`
//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
`
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.
`
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.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The main differences between Node.js and Tomcat are: Runtime: Node.js is based on JavaScript runtime, while Tomcat is a Java Servlet container. I/O model: Node.js uses an asynchronous non-blocking model, while Tomcat is synchronous blocking. Concurrency handling: Node.js handles concurrency through an event loop, while Tomcat uses a thread pool. Application scenarios: Node.js is suitable for real-time, data-intensive and high-concurrency applications, and Tomcat is suitable for traditional Java web applications.

Node.js is a server-side JavaScript runtime, while Vue.js is a client-side JavaScript framework for creating interactive user interfaces. Node.js is used for server-side development, such as back-end service API development and data processing, while Vue.js is used for client-side development, such as single-page applications and responsive user interfaces.

Node.js can be used as a backend framework as it offers features such as high performance, scalability, cross-platform support, rich ecosystem, and ease of development.

To connect to a MySQL database, you need to follow these steps: Install the mysql2 driver. Use mysql2.createConnection() to create a connection object that contains the host address, port, username, password, and database name. Use connection.query() to perform queries. Finally use connection.end() to end the connection.

There are two npm-related files in the Node.js installation directory: npm and npm.cmd. The differences are as follows: different extensions: npm is an executable file, and npm.cmd is a command window shortcut. Windows users: npm.cmd can be used from the command prompt, npm can only be run from the command line. Compatibility: npm.cmd is specific to Windows systems, npm is available cross-platform. Usage recommendations: Windows users use npm.cmd, other operating systems use npm.

Yes, Node.js is a backend development language. It is used for back-end development, including handling server-side business logic, managing database connections, and providing APIs.

The following global variables exist in Node.js: Global object: global Core module: process, console, require Runtime environment variables: __dirname, __filename, __line, __column Constants: undefined, null, NaN, Infinity, -Infinity

The main differences between Node.js and Java are design and features: Event-driven vs. thread-driven: Node.js is event-driven and Java is thread-driven. Single-threaded vs. multi-threaded: Node.js uses a single-threaded event loop, and Java uses a multi-threaded architecture. Runtime environment: Node.js runs on the V8 JavaScript engine, while Java runs on the JVM. Syntax: Node.js uses JavaScript syntax, while Java uses Java syntax. Purpose: Node.js is suitable for I/O-intensive tasks, while Java is suitable for large enterprise applications.
