Em termos gerais, Sails.js é um gerador de códigos JavaScript que entrega, em poucos minutos, um protótipo executável de uma Aplicação WEB do tipo backend robusta, segura e escalável. Diz-se backend porque todo o processamento ocorre do lado do servidor e depois disso é retornado ao navegador páginas HTML5 + CSS + JavaScript dinâmicas ao Cliente Web.
No entanto, é possível separar o acesso aos dados e a renderização de telas para os usuários em dois "pacotes" distintos: o frontend - contendo as páginas html+JavaScript construídas na estação do cliente de forma dinâmica; e o backend - contendo as funções de acesso a base de dados e autenticação no lado do servidor.
Este passo-a-passo demonstra como utilizar o Vue 3 como solução de frontend em sincronia com as funcionalidades do Sails.js no backend.
Se esta é sua primeira vez aqui, recomendamos a leitura dos conteúdos abaixo antes de continuar:
npm i sails -g
sails new primeiro-prototipo
Choose a template for your new Sails app: 1. Web App · Extensible project with auth, login, & password recovery 2. Empty · An empty Sails app, yours to configure (type "?" for help, or <CTRL+C> to cancel) ? 2
cd primeiro-prototipo
sails lift
você verá:
info: Starting app... info: Initializing project hook... (`api/hooks/custom/`) info: Initializing `apianalytics` hook... (requests to monitored routes will be logged!) info: ·• Auto-migrating... (alter) info: Hold tight, this could take a moment. info: ✓ Auto-migration complete. debug: Running v0 bootstrap script... (looks like this is the first time the bootstrap has run on this computer) info: info: .-..-. info: info: Sails <| .-..-. info: v1.5.8 |\ info: /|.\ info: / || \ info: ,' |' \ info: .-'.-==|/_--' info: `--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in `C:\Users\rogeriorfs\git\passo-a-passo` info: To shut down Sails, press <CTRL> + C at any time. info: Read more at https://sailsjs.com/support. debug: ------------------------------------------------------- debug: :: Mon Jul 17 2023 08:15:43 GMT-0300 (Horário Padrão de Brasília) debug: Environment : development debug: Port : 1337 debug: Local : http://localhost:1337 debug: -------------------------------------------------------
http://localhost:1337
.
O navegador deve apresentar algo do tipo:
npm init vue@latest
Need to install the following packages: create-vue@3.7.1 Ok to proceed? (y) y Vue.js - The Progressive JavaScript Framework ? Project name: » vue-project
vite.config.js
e adicione a informação build: { outDir: '../assets', emptyOutDir: true }
de modo que o arquivo se pareça com:
import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, build: { outDir: '../assets', emptyOutDir: true } })
npm install
e, em seguida, npm run build
.
Você deve visualizar no console algo do tipo:
vite v4.4.7 building for production... ✓ 42 modules transformed. ../assets/assets/logo-277e0e97.svg 0.28 kB │ gzip: 0.20 kB ../assets/index.html 0.42 kB │ gzip: 0.28 kB ../assets/assets/AboutView-4d995ba2.css 0.09 kB │ gzip: 0.10 kB ../assets/assets/index-efcb3133.css 4.20 kB │ gzip: 1.30 kB ../assets/assets/AboutView-923dc868.js 0.23 kB │ gzip: 0.20 kB ../assets/assets/index-3541e00c.js 84.97 kB │ gzip: 33.45 kB ✓ built in 1.34s
views/pages/homepage.ejs
e substitua todo o seu conteúdo por:
<script>
window.location.href='/index.html'
</script>
sails lift
(a partir da raiz do seu novo protótipo e não da pasta criada pelo Vue 3)npm run dev
. Depois abra seu Navegador e navegue para http://127.0.0.1:5173/
[nome-do-diretorio-vue]/src/App.vue
e faça a alteração do texto You dit it!
(provavelmente linha 11) para Sails com Vue 3
npm run build
para atualizar o conteúdo estático em assets/
. Somente depois disso, reinicie sua aplicação Sails com o comando sails lift