Commit inicial
This commit is contained in:
		
						commit
						3d579f5e01
					
				
							
								
								
									
										24
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
# README
 | 
			
		||||
 | 
			
		||||
## Projeto
 | 
			
		||||
 | 
			
		||||
Este é um projeto básico criado para demonstrar o uso de um README.
 | 
			
		||||
 | 
			
		||||
## Estrutura
 | 
			
		||||
 | 
			
		||||
- **Diretório:** `/Users/luizpicolo/Downloads/Tads5/`
 | 
			
		||||
- **Arquivo:** `README.md`
 | 
			
		||||
 | 
			
		||||
## Como usar
 | 
			
		||||
 | 
			
		||||
1. Clone o repositório.
 | 
			
		||||
2. Navegue até o diretório do projeto.
 | 
			
		||||
3. Leia este arquivo para entender a estrutura.
 | 
			
		||||
 | 
			
		||||
## Contribuição
 | 
			
		||||
 | 
			
		||||
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
 | 
			
		||||
 | 
			
		||||
## Licença
 | 
			
		||||
 | 
			
		||||
Este projeto está licenciado sob a [MIT License](LICENSE).
 | 
			
		||||
							
								
								
									
										0
									
								
								client/.keep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								client/.keep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										1
									
								
								server/.env.example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								server/.env.example
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
MONGODB_URI=
 | 
			
		||||
							
								
								
									
										2
									
								
								server/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								server/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
.env
 | 
			
		||||
node_modules
 | 
			
		||||
							
								
								
									
										40
									
								
								server/app.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								server/app.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
require("dotenv").config();
 | 
			
		||||
var createError = require('http-errors');
 | 
			
		||||
var express = require('express');
 | 
			
		||||
var path = require('path');
 | 
			
		||||
var cookieParser = require('cookie-parser');
 | 
			
		||||
var logger = require('morgan');
 | 
			
		||||
var connectDB = require('./config/db');
 | 
			
		||||
 | 
			
		||||
var indexRouter = require('./routes/index');
 | 
			
		||||
var usersRouter = require('./routes/users');
 | 
			
		||||
 | 
			
		||||
var app = express();
 | 
			
		||||
connectDB(); 
 | 
			
		||||
 | 
			
		||||
app.use(logger('dev'));
 | 
			
		||||
app.use(express.json());
 | 
			
		||||
app.use(express.urlencoded({ extended: false }));
 | 
			
		||||
app.use(cookieParser());
 | 
			
		||||
app.use(express.static(path.join(__dirname, 'public')));
 | 
			
		||||
 | 
			
		||||
app.use('/', indexRouter);
 | 
			
		||||
app.use('/users', usersRouter);
 | 
			
		||||
 | 
			
		||||
// catch 404 and forward to error handler
 | 
			
		||||
app.use(function(req, res, next) {
 | 
			
		||||
  next(createError(404));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// error handler
 | 
			
		||||
app.use(function(err, req, res, next) {
 | 
			
		||||
  // set locals, only providing error in development
 | 
			
		||||
  res.locals.message = err.message;
 | 
			
		||||
  res.locals.error = req.app.get('env') === 'development' ? err : {};
 | 
			
		||||
 | 
			
		||||
  // render the error page
 | 
			
		||||
  res.status(err.status || 500);
 | 
			
		||||
  res.render('error');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = app;
 | 
			
		||||
							
								
								
									
										90
									
								
								server/bin/www
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								server/bin/www
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,90 @@
 | 
			
		||||
#!/usr/bin/env node
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Module dependencies.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
var app = require('../app');
 | 
			
		||||
var debug = require('debug')('server:server');
 | 
			
		||||
var http = require('http');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get port from environment and store in Express.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
var port = normalizePort(process.env.PORT || '3000');
 | 
			
		||||
app.set('port', port);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create HTTP server.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
var server = http.createServer(app);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Listen on provided port, on all network interfaces.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
server.listen(port);
 | 
			
		||||
server.on('error', onError);
 | 
			
		||||
server.on('listening', onListening);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Normalize a port into a number, string, or false.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function normalizePort(val) {
 | 
			
		||||
  var port = parseInt(val, 10);
 | 
			
		||||
 | 
			
		||||
  if (isNaN(port)) {
 | 
			
		||||
    // named pipe
 | 
			
		||||
    return val;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (port >= 0) {
 | 
			
		||||
    // port number
 | 
			
		||||
    return port;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Event listener for HTTP server "error" event.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function onError(error) {
 | 
			
		||||
  if (error.syscall !== 'listen') {
 | 
			
		||||
    throw error;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var bind = typeof port === 'string'
 | 
			
		||||
    ? 'Pipe ' + port
 | 
			
		||||
    : 'Port ' + port;
 | 
			
		||||
 | 
			
		||||
  // handle specific listen errors with friendly messages
 | 
			
		||||
  switch (error.code) {
 | 
			
		||||
    case 'EACCES':
 | 
			
		||||
      console.error(bind + ' requires elevated privileges');
 | 
			
		||||
      process.exit(1);
 | 
			
		||||
      break;
 | 
			
		||||
    case 'EADDRINUSE':
 | 
			
		||||
      console.error(bind + ' is already in use');
 | 
			
		||||
      process.exit(1);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      throw error;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Event listener for HTTP server "listening" event.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function onListening() {
 | 
			
		||||
  var addr = server.address();
 | 
			
		||||
  var bind = typeof addr === 'string'
 | 
			
		||||
    ? 'pipe ' + addr
 | 
			
		||||
    : 'port ' + addr.port;
 | 
			
		||||
  debug('Listening on ' + bind);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								server/config/db.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								server/config/db.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
const mongoose = require("mongoose");
 | 
			
		||||
 | 
			
		||||
const connectDB = async () => {
 | 
			
		||||
    try {
 | 
			
		||||
        await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/meubanco');
 | 
			
		||||
        console.log("MongoDB conectado de forma maravilhosa :)");
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        console.error(error.message)
 | 
			
		||||
        process.exit(1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = connectDB;
 | 
			
		||||
							
								
								
									
										11
									
								
								server/controllers/homeController.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								server/controllers/homeController.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
const User = require("../models/User");
 | 
			
		||||
 | 
			
		||||
const getHome = async function(req, res, next) {
 | 
			
		||||
    try {
 | 
			
		||||
        res.send("Aqui é a home")
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        res.status(500).send("Não foi encontrado usuários")
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = { getHome }
 | 
			
		||||
							
								
								
									
										24
									
								
								server/controllers/usersController.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								server/controllers/usersController.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
const User = require("../models/User");
 | 
			
		||||
 | 
			
		||||
const listUsers = async (req, res) => {
 | 
			
		||||
    try {
 | 
			
		||||
        const users = await User.find();
 | 
			
		||||
        res.json(users)    
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        res.status(500).send("Erro ao carregar usuários");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const createtUser = async (req, res) => {
 | 
			
		||||
    try {
 | 
			
		||||
        const user = new User(req.body);
 | 
			
		||||
        const newUser = await user.save();
 | 
			
		||||
        res.json(newUser);
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        res.status(500).send("Erro ao salvar usuários");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = { listUsers, createtUser }
 | 
			
		||||
							
								
								
									
										19
									
								
								server/models/User.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								server/models/User.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
const mongoose = require("mongoose");
 | 
			
		||||
 | 
			
		||||
const UserSchema = new mongoose.Schema({
 | 
			
		||||
    name: {
 | 
			
		||||
        type: String,
 | 
			
		||||
        required: true
 | 
			
		||||
    },
 | 
			
		||||
    email: {
 | 
			
		||||
        type: String,
 | 
			
		||||
        required: true,
 | 
			
		||||
        unique: true
 | 
			
		||||
    },
 | 
			
		||||
    createdAt: {
 | 
			
		||||
        type: Date,
 | 
			
		||||
        default: Date.now
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = mongoose.model("User", UserSchema);
 | 
			
		||||
							
								
								
									
										1287
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										1287
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										17
									
								
								server/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								server/package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "server",
 | 
			
		||||
  "version": "0.0.0",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "start": "node --watch ./bin/www"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "cookie-parser": "~1.4.4",
 | 
			
		||||
    "debug": "~2.6.9",
 | 
			
		||||
    "dotenv": "^16.5.0",
 | 
			
		||||
    "express": "^4.21.2",
 | 
			
		||||
    "http-errors": "~1.6.3",
 | 
			
		||||
    "mongoose": "^8.14.1",
 | 
			
		||||
    "morgan": "~1.9.1"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								server/public/stylesheets/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								server/public/stylesheets/style.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
body {
 | 
			
		||||
  padding: 50px;
 | 
			
		||||
  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a {
 | 
			
		||||
  color: #00B7FF;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								server/routes/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								server/routes/index.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
var express = require('express');
 | 
			
		||||
var router = express.Router();
 | 
			
		||||
 | 
			
		||||
const { getHome } = require("../controllers/homeController") 
 | 
			
		||||
 | 
			
		||||
router.get('/', getHome);
 | 
			
		||||
 | 
			
		||||
module.exports = router;
 | 
			
		||||
							
								
								
									
										14
									
								
								server/routes/users.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								server/routes/users.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
var express = require('express');
 | 
			
		||||
var router = express.Router();
 | 
			
		||||
 | 
			
		||||
const { listUsers, createtUser } = require("../controllers/usersController") 
 | 
			
		||||
 | 
			
		||||
// POST (Criar algo)
 | 
			
		||||
// GET (Retornar algo)
 | 
			
		||||
// DELETE (Deletar algo)
 | 
			
		||||
// UPDATE (Atualizar)
 | 
			
		||||
 | 
			
		||||
router.get('/', listUsers);
 | 
			
		||||
router.post('/', createtUser);
 | 
			
		||||
 | 
			
		||||
module.exports = router;
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user