La semana pasada, entré en contacto con el marco de Sails construyendo un sistema CMS y aprendí algunos de los conceptos de ORM. Esta semana, comenzamos a profundizar en la interacción de datos de fondo y descubrimos que la estructura de datos del veinte marco se ha diseñado en velas (como nodo y categoría). Tengo que decir que mi senior es increíble. Pero la complejidad también ha aumentado. Mi tarea en el proyecto DTree es usar velas para interactuar con procesos comerciales y bases de datos. La próxima vez esta semana es usar velas.
Introducción a las velas
Sails es como Ruby on Rails, y también es un marco para simplificar el desarrollo web. Hasta donde sé durante este período, hereda por completo algunas API de Express & Socket.io, y usa Waterline (ORM) para la interacción de la base de datos unificada, de modo que las operaciones de Crud se pueden completar en diferentes entornos de bases de datos sin modificar directamente el código; Sincroniza los datos de los extremos frontales y traseros con el marco de la red troncal, y usa las políticas middleware para verificar de forma segura la interacción de sus propios planos. Puede interactuar a través de la API RESTFULL sin una sola línea de código en el extremo delantero y trasero.
Socket.io & express
El front-end ha aprendido estas dos cosas a tiempo, una es la comunicación de Websock y la otra es procesar las solicitudes HTTP. Sails no está rediseñado, pero usa estas dos herramientas para tratar estas funciones directamente, lo que reduce mucho los costos de aprendizaje. Socket.io desencadena mensajes, escucha mensajes y realiza operaciones en consecuencia tanto en el servidor como en el cliente.
La copia del código es la siguiente:
``
// lado del servidor
io.sockets.on ("conexión", función (calcetín) {
sock.emit ("normalMessage", {a: "c"});
});
//Servicio al cliente
sock.on ("normalMessage", function (json) {...});
``
La función de Express se encuentra en las operaciones de enrutamiento, como App.get ('/Login', Function (Req, Res) {});.
Sails Blueprints & Backbone
En el desarrollo web, CRUD es un tipo de operación similar, como GET/POST en HTTP y seleccionar/insertar en la base de datos. La API de planos de las velas y el marco de la columna vertebral de JS usan una clase de funciones unificadas (como FindOne), de modo que la lógica interna ya está establecida cuando el programa establece el modelo y el controlador correspondiente. Por ejemplo, el modelo de usuarios de uso común ha creado un controlador en velas para pasar y almacenar los datos de los usuarios. Todo lo que debemos prestar atención son las especificaciones y procesos comerciales de los nombres de los archivos. También está bien si desea anular (sobrecargar) el método original. Después de establecer la acción y el controlador en las rutas en la carpeta de configuración, podemos agregar las funciones que necesitamos al controlador correspondiente.
Línea del agua
La API del paquete dependiente de Sails se utiliza para interactuar con bases de datos, como Create (), FindOne (), Update (), etc. Como se mencionó anteriormente, no necesitamos preocuparnos por diferentes herramientas de bases de datos para llamar a estos métodos directamente de manera uniforme. Por ejemplo, al ingresar datos
La copia del código es la siguiente:
``
Users.Create ({UserName: UserName, Password: Password}). Exec (function (Error, User) {
if (error) {
res.send (500, {error: "error db"});
} demás {
req.session.user = user;
res.send (usuario);
}
``
El sistema predeterminado es guardar datos en el sistema de archivos local. Si necesitamos elegir MySQL o MongoDB. Simplemente modifíquelo en el archivo de configuración y seleccione el adaptador de la base de datos para interactuar con los datos.
Políticas
Aplicado al middleware en el controlador, ejecute antes de emitir la solicitud HTTP. El control de identidad se puede lograr, por ejemplo, solo puede realizar las siguientes acciones si inicia sesión.
La copia del código es la siguiente:
``
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;
}
próximo();
}demás{
res.send ("Debe iniciar sesión", 403);
}
``
próximo
Las velas comenzaron con éxito, pero aún necesita trabajar más duro en esto. Solo colocando una base sólida podemos lograr necesidades específicas. Por lo tanto, necesitamos continuar aprendiendo, encontrar más rutinas para aprender velas en profundidad y también conocer las limitaciones de este marco.