guias
Frameworks

Deploy Express

Como fazer deploy de uma API Express na Veloz.

Faça deploy de uma API Express na Veloz.

1. Projeto Express

// index.js
const express = require("express");
const app = express();
const port = process.env.PORT || 3000;
 
app.use(express.json());
 
app.get("/", (req, res) => {
  res.json({ message: "Olá da Veloz!" });
});
 
app.get("/health", (req, res) => {
  res.json({ status: "ok" });
});
 
app.listen(port, "0.0.0.0", () => {
  console.log(`Servidor rodando na porta ${port}`);
});

Importante: Escute em 0.0.0.0 (não localhost) e use process.env.PORT.

2. Package.json

{
  "name": "minha-api",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "dependencies": {
    "express": "^4.18.0"
  }
}

3. Deploy

npm install -g onveloz
veloz login
veloz deploy
ℹ Framework detectado: Express
ℹ Start: node index.js
ℹ Porta: 3000

? Confirmar e fazer deploy? (Y/n)

Com TypeScript

// src/index.ts
import express from "express";
 
const app = express();
const port = process.env.PORT || 3000;
 
app.use(express.json());
 
app.get("/", (req, res) => {
  res.json({ message: "Olá da Veloz!" });
});
 
app.listen(port, "0.0.0.0");
{
  "scripts": {
    "build": "tsc",
    "start": "node dist/index.js"
  }
}

A Veloz detecta o script build e roda tsc automaticamente antes do deploy.

Com MongoDB

npm install mongoose
veloz env set MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/mydb
const mongoose = require("mongoose");
 
mongoose.connect(process.env.MONGODB_URI);
 
const UserSchema = new mongoose.Schema({
  name: String,
  email: String,
});
 
const User = mongoose.model("User", UserSchema);
 
app.get("/users", async (req, res) => {
  const users = await User.find();
  res.json(users);
});

Com PostgreSQL (Prisma)

npm install prisma @prisma/client
veloz env set DATABASE_URL=postgres://user:pass@host:5432/mydb

CORS

npm install cors
const cors = require("cors");
 
app.use(
  cors({
    origin: "https://meuapp.com",
    credentials: true,
  }),
);

Health Check customizado

A Veloz faz health check em / por padrão. Para usar um endpoint diferente:

{
  "services": {
    ".": {
      "runtime": {
        "healthCheck": {
          "path": "/health",
          "interval": 15
        }
      }
    }
  }
}

Próximos passos