By Sails.js Tech Brasil

Copie o código fonte desta página e cole no seu Projeto Sails (arquivo \views\pages\faq.ejs)


Perguntas Frequentes


Para que serve esta página?

Este é um modelo para criar sua própria página de "Perguntas Frequentes". Ele foi gerado convertido para a língua portuguesa a partir da versão gerada como parte do gerador de códigos Sails. Além de cumprir seu objetivo principal como um modelo, esta página funciona como um guia prático sobre o próprio gerador de códigos do Sails.

Antes de implantar este aplicativo em produção, certifique-se de substituir o conteúdo desta página por perguntas e respostas reais que são relevantes para o seu projeto. Ou se você não precisa de um FAQ, basta excluir este arquivo completamente.


Além do Sails, de quais tecnologias, estruturas ou serviços esse aplicativo depende?

Este aplicativo inclui várias ferramentas e integrações que usamos frequentemente no topo do Sails. Eles funcionaram bem para nós no passado; permitindo que nos concentremos no desenvolvimento de novos recursos com o mínimo de sobrecarga. Alguns são arquivos que nós mesmos desenvolvemos, e o resto são serviços e estruturas de terceiros (3rd). Embora alguns deles exijam que você crie uma conta (ou obtenha uma chave de API, etc.), queremos enfatizar que incluímos apenas ferramentas confiáveis que nos sentimos confortáveis em usar em nossos próprios projetos e nos projetos de nossos clientes.

  • Bootstrap 4 - Biblioteca de Componentes para Front-end
  • Font Awesome 4 - Ícones
  • Vue.js - Ferramenta para desenvolvimento de Front-end
  • parasails.js - Camada fina de convenções agrupadas para uso do Vue.js (Vue2) com o Sails.js e SDK gerado dinamicamente para lidar com solicitações AJAX e/ou WebSocket do front-end para as ações em seu aplicativo Sails (Veja mais informações sobre o uso abaixo).
  • Sendgrid* - API para envio de Emails
  • Stripe* - API para gestão de Pagamentos

* requer uma chave de API


Por que vejo espaços reservados como "NEW_APP_NAME" em todos os lugares? Qual é a melhor maneira de personalizá-los?

Como os projetos geralmente são gerados antes que os nomes de produtos e/ou empresas sejam finalizados, achamos que fazia mais sentido usar espaços reservados facilmente localizáveis e substituíveis do que solicitar um nome de aplicativo ou empresa no início. (É muito mais fácil encontrar/substituir "NEW_APP_NAME" sem conflitos do que encontrar/substituir uma palavra mais comumente usada.)

Quando você tiver seu produto, nome da empresa e marca finalizados, aqui estão os espaços reservados que você deverá trocar:

  • NEW_APP_NAME - O Nome do seu produto de software.
  • NEW_APP_COMPANY_NAME - Esse espaço reservado é usado para o nome da entidade nos termos legais e na política de privacidade e pode ser substituído pelo nome da empresa por trás do seu aplicativo.
  • DATE_PRIVACY_POLICY_LAST_UPDATED - Substitua isso pela data em que sua Política de Privacidade foi atualizada (portanto, se você estiver trocando o nome da empresa, a data é hoje).
  • DATE_TERMS_OF_SERVICE_LAST_UPDATED - Substitua isso pela data em que seus Termos de Serviço foram atualizados (portanto, se você estiver trocando o nome da empresa, a data é hoje).
  • NEW_APP_COMPANY_ABOUT_HREF - Este é o link na seção de direitos autorais do rodapé. Você provavelmente vai querer trocá-lo por um link para a página sobre a sua empresa ou site de marketing.
  • Espaço reservado para o Logotipo - Para usar sua marca personalizada, você pode simplesmente substituir o arquivo de imagem em assets/images/logo.png por uma imagem personalizada de mesmo nome, ou alterar a imagem src no cabeçalho em views/layouts/layout.ejs.
Apenas um alerta: os dois parágrafos anteriores farão muito menos sentido depois que você tiver feito uma localização/substituição em cada uma dessas palavras de espaço reservado.

Como configuro um novo método para ser usado com o cloud.js?

Depois de criar uma ação de controlador (controllers/*.js) com um dos comandos sails generate page -nome-da-pagina- ou sails generate action e adicioná-la às suas rotas (routes.js) (consulte os documentos Sails.js para obter mais informações sobre como fazer isso), há apenas algumas etapas simples para adicioná-la ao seu SDK Cloud global:

  • Reconstrua o SDK personalizado deste aplicativo usando o comando sails run scripts/rebuild-cloud-sdk. (Isso regenerará automaticamente as definições de método em seu arquivo assets/js/cloud.setup.js com base em suas rotas configuradas.)
  • Você pode então chamar quaisquer novas ações relevantes como "métodos de nuvem" em seu código de frontend (dentro de um arquivo *.js) assim: await Cloud.doSomething.with({...})
  • Desta forma o Cloud.js irá buscar no arquivo cloud.setup.js pela rota doSomething a criará uma requisição HTTP passando o conteúdo do método with() como parâmetros de query.

Como faço para registrar uma nova página com parasails.js?

Para gerar arquivos para uma nova página (por exemplo, "hotels-overview"), execute:

sails generate page hotels-overview

Em seguida, você pode adicionar uma rota para a nova ação de exibição (view) para torná-la acessível a partir do navegador. Por exemplo:

'GET /hotels': { action: 'view-hotels-overview' }

Para registrar uma nova página sem o gerador, verifique se o elemento de nível superior da exibição que você deseja registrar tem uma propriedade id (por exemplo, <div id="my-new-page">... </div>). Em seguida, crie um novo arquivo JavaScript e inclua parasails.registerPage('my-new-page', { /* options for the Vue.js instance */ }). Para obter exemplos mais completos, pesquise em assets/js/pages/.


O que acontecerá com todos os estilos (css styles) em linha?

Como este aplicativo, inicialmente, usa a biblioteca css Bootstrap, queríamos deixar um pouco mais claro onde nossos estilos personalizados terminam e os estilos do Bootstrap começam. Sempre que possível, você verá style="..." no HTML. Se, por algum motivo, uma tag de estilo não funcionar (por exemplo, para consultas de mídia), você verá purpose="..." no HTML e [purpose='...'] no arquivo .less – adotamos essa abordagem, em vez de usar nomes de classe personalizados, para ajudar a evitar confusão sobre quais classes vêm do Bootstrap e quais nós mesmos adicionamos.

Outro motivo: copiar/colar! Com os estilos embutidos, é muito mais fácil copiar HTML de uma página sem a necessidade de também duplicar estilos dos arquivos .less correspondentes.


Como implantar na Heroku?

No painel Heroku, configure seu aplicativo para implantação automática a partir da ramificação (branch) de deploy do repositório GitHub deste projeto. Em seguida, a partir da linha de comando, execute sails run deploy.

Para obter mais dicas de deploy, consulte este link.

Nota para usuários Windows:o script associado ao comando deploy registrado no arquivo package.json foi escrito pelos desenvolvedores do Sails para uso no Linux, portanto, antes de executá-lo, altere-o.


Tenho mesmo que hospedar na Heroku?

De maneira nenhuma! Você pode implantar seu aplicativo em qualquer lugar que ofereça suporte a Node.js.


Como faço para verificar os endereços de e-mail do meu usuário?

Por padrão, a verificação de e-mail não é necessária para se inscrever, nem para quando um usuário existente altera seu endereço de e-mail na página da conta. Para habilitar uma etapa de verificação de e-mail para ambas as ações, abra config/custom.js e altere verifyEmailAddresses: false para verifyEmailAddresses: true


Como termino de configurar o Sendgrid?

Para usar o Sendgrid, você precisará se inscrever em uma conta. (Embora este seja um serviço pago em níveis de uso mais altos, você deve ser capaz de usar o Sendgrid no desenvolvimento sem ter que fornecer nenhuma informação de cartão de crédito.)

Depois de criar uma conta, você precisará adicionar a Chave Secreta da API do Sendgrid à configuração personalizada. (No desenvolvimento, isso será em config/custom.js ou em um arquivo local.js que você adicionar à sua pasta config/. Para sua implantação de preparo ou produção, convém defini-las usando variáveis de ambiente do sistema -- também conhecidas como "variáveis de configuração" na Heroku.)

Se você já possui um domínio para seu aplicativo, pode seguir as instruções do próprio Sendgrid para configurar um domínio de envio.

Caso contrário, para enviar e-mails deste aplicativo sem configurar um domínio de envio, você pode verificar um único remetente. Apenas certifique-se de definir sails.config.custom.fromEmailAddress para usar o e-mail verificado, ou haverá erros dos endpoints de API que tentam enviar e-mails.


Como termino de configurar o Stripe?

Para usar o Stripe para o processamento de pagamentos do seu aplicativo, você precisará se inscrever em uma conta.

Depois de ter uma conta, você precisará incluir suas chaves públicas e privadas na configuração personalizada do seu aplicativo como sails.config.custom.stripePublishableKey e sails.config.custom.stripeSecret. No desenvolvimento, você pode adicionar suas chaves de teste ao config/custom.js ou em um arquivo local.js que você adiciona à sua pasta config/.

Em sua implantação de homologação ou produção, você desejará definir suas chaves de API usando variáveis de ambiente do sistema (também conhecidas como "variáveis de configuração" na Heroku) e precisará garantir que seu site atenda aos requisitos HTTPS do Stripe para que o Stripe Checkout funcione. Para obter mais informações, consulte Guia de checkout detalhado Detailed Checkout.


Como faço para desabilitar ___________?

Para desativar a estrutura do Bootstrap:

  • Excluir os arquivos da pasta/depencies/bootstrap/
  • No arquivo tasks/pipeline.js, apague 'dependencies/bootstrap/dependencies/**/*.js', da seção jsFilesToInject

Para desativar o FontAwesome:

  • Exclua a pasta em assets/dependencies/font-awesome-4/. (Você provavelmente também vai querer pesquisar no projeto por "fa fa-" para verificar se há ícones remanescentes no HTML.)

Para trocar o Sendgrid:

Escolhemos o Sendgrid por causa de seu nível gratuito muito generoso (você pode enviar até 100 e-mails por dia). Além disso, ele se integra facilmente, já existe há algum tempo (por isso é estável e faz um bom trabalho evitando filtros de spam) e é usado internamente em empresas como Slack e Medium.

Está pronto para uso, mas se o Sendgrid não estiver configurado para este aplicativo, o formulário de contato e o fluxo de recuperação de senha falharão completamente, a menos que um endereço de e-mail terminado em "@example.com" seja usado. Felizmente, se você deseja usar este recurso, como uma solução diferente para enviar e-mails automatizados o Twilio. Para alternar para um serviço diferente do Sendgrid, você precisará fazer as seguintes alterações no código:

  • Modifique o código em api/helpers/send-template-email.js para usar o serviço de e-mail de sua escolha.
  • Em api/hooks/custom/index.js, remova os avisos relacionados ao Sendgrid.

Para remover ou substituir a integração do Stripe:

Escolhemos o Stripe porque é o processador de pagamentos mais fácil de integrar do mercado. Suas taxas são aproximadamente as mesmas que seus concorrentes, mas mesmo que esse não fosse o caso, o foco da Stripe na felicidade do desenvolvedor provavelmente compensaria. O Stripe processa pagamentos, descontos e muito mais para centenas de milhares de empresas em todo o mundo.

Por padrão, os recursos relacionados ao faturamento são desabilitados automaticamente se você não tiver uma chave publica do Stripe e uma chave privada em sua configuração personalizada (sails.config.custom.stripePublishableKey e sails.config.custom.stripeSecret, respectivamente). Seu aplicativo não será afetado negativamente ou aparecerá quebrado; ele simplesmente terá algum código estranho em lugares.

    Se você não prevê a integração de recursos de faturamento em seu aplicativo e deseja remover esse código completamente, você pode fazer as seguintes alterações:
  • In the User model definition at api/models/User.js, remove the stripeCustomerId, billingCardBrand, billingCardLast4, billingCardExpMonth, and billingCardExpYear attribute definitions.
  • Na ação "signup" em api/controllers/entrance/signup.js:
    • Remova a linha na parte superior que requer a dependência de Stripe
    • Remova o bloco de código que cria um cliente Stripe. (Se você tiver problemas para encontrar onde isso acontece, leia os comentários).
    • Na chamada para User.create(), remova a propriedade stripeCustomerId.
  • Na ação "confirmar e-mail" em api/controllers/entrance/confirm-email.js:
    • Remova a linha na parte superior que requer a dependência Stripe.
    • Remova o bloco de código que lida com a criação/atualização de um cliente Stripe. (Se você tiver problemas para encontrar onde isso acontece, leia os comentários.)
  • Remova o endpoint do cartão de cobrança de atualização e todas as referências a ele fazendo o seguinte:
    • Exclua o arquivo em api/controllers/account/update-billing-card.js.
    • Em config/routes.js, exclua a configuração de rota para 'PUT /api/v1/account/update-billing-card'.
    • Em assets/js/cloud.setup.js, exclua o método updateBillingCard.
    • Em assets/js/pages/account/account-overview.page.js, remova o método clickStripeCheckoutButton
    • Em views/pages/account/account-overview.ejs, remova o HTML relacionado a faturamento.
  • Em api/hooks/custom/index.js, remova os avisos relacionados ao Stripe.
  • Em api/hooks/custom/index.js, remova sails.config.custom.enableBillingFeatures = !isMissingStripeConfig;.

Onde posso pedir mais ajuda?

Se você tiver problemas, você poderá encontrar a resposta na documentação do Sails.js . Se você não tem certeza sobre como proceder, ou está completamente perplexo, não deixe de conferir o endereço últimos recursos disponíveis.

Nota para nativos da língua portuguesa:A RIZ | iko Softwarehouse pode ser seu facilitador neste processo. Clique aqui para saber como

<%- /* Expose locals as `window.SAILS_LOCALS` :: */ exposeLocalsToBrowser() %>
Para saber mais:
Início