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 -gsails 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-prototiposails 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 3npm run build para atualizar o conteúdo estático em assets/. Somente depois disso, reinicie sua aplicação Sails com o comando sails lift