DBE S04: cadastro e listagem de instrumentos musicais
This commit is contained in:
commit
bcf1a6d218
17 files changed
+2152
No files matched your search
@@ -0,0 +1,68 @@
|
||||
// Anderson Valadares Pinto (20251PL.TSIAD0018) [SLS]
|
||||
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import express from 'express';
|
||||
import mongoose from 'mongoose';
|
||||
|
||||
import instrumentoRoutes from './routes/instrumento.js';
|
||||
|
||||
// Configuração para resolução de caminhos com ES Modules
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const app = express();
|
||||
const PORT = Number(process.env.PORT) || 3000;
|
||||
const MONGODB_URI =
|
||||
process.env.MONGODB_URI || 'mongodb://127.0.0.1:27017/loja_instrumentos';
|
||||
|
||||
// Configuração do mecanismo de visualização EJS
|
||||
app.set('view engine', 'ejs');
|
||||
app.set('views', path.join(__dirname, 'views'));
|
||||
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
|
||||
// Funções de formatação disponíveis em todos os templates.
|
||||
app.locals.formatarPreco = (valor) =>
|
||||
new Intl.NumberFormat('pt-BR', {
|
||||
style: 'currency',
|
||||
currency: 'BRL',
|
||||
}).format(Number(valor) || 0);
|
||||
|
||||
app.use('/', instrumentoRoutes);
|
||||
|
||||
// Página não encontrada.
|
||||
app.use((req, res) => {
|
||||
res.status(404).render('erro', {
|
||||
titulo: 'Página Não Encontrada',
|
||||
codigo: 404,
|
||||
mensagem: 'O endereço que você tentou abrir não existe.',
|
||||
});
|
||||
});
|
||||
|
||||
// Qualquer erro inesperado cai aqui, em vez de derrubar o servidor.
|
||||
app.use((erro, req, res, next) => {
|
||||
console.error(erro);
|
||||
res.status(500).render('erro', {
|
||||
titulo: 'Erro Interno',
|
||||
codigo: 500,
|
||||
mensagem: 'Algo deu errado ao processar a solicitação. Tente novamente.',
|
||||
});
|
||||
});
|
||||
|
||||
async function iniciar() {
|
||||
await mongoose.connect(MONGODB_URI);
|
||||
console.log(`Conectado ao MongoDB em ${MONGODB_URI}`);
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.log(
|
||||
`Servidor rodando com sucesso na porta ${PORT}: http://localhost:${PORT}/instrumentos`
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
iniciar().catch((erro) => {
|
||||
console.error('Não foi possível iniciar a aplicação:', erro.message);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in new issue
Block a user