Escolar Documentos
Profissional Documentos
Cultura Documentos
Disponibilizando
Sumário
● Como começar um projeto
do zero
Autenticação
O que vamos
●
● Autorização
ver hoje?
Começando um projeto
Primeiros Passos 👣
● Dentro da pastinha do projeto rode o comandinho para
começar uma aplicação node.js
tsc --init
tsconfig.json 📝
● Deixar o arquivo com as seguintes configurações:
{
"compilerOptions": {
"target": "es6", /* Specify ECMAScript target version */
"module": "commonjs", /* Specify module code generation */
"sourceMap": true, /* Generates corresponding '.map' file. */
"outDir": "./build", /* Redirect output structure to the directory. */
"rootDir": "./src", /* Specify the root directory of input files. */
"removeComments": true, /* Do not emit comments to output. */
"noImplicitAny": true, /* Raise error on declarations with an implied 'any' type.
*/
}
}
Instalando as dependências 💾
● Typescript
npm i typescript -D
● ts-node-dev
npm i ts-node-dev -D
npm i @types/knex -D
● Dotenv
npm i dotenv
Scripts 📜
"scripts": {
"dev": "ts-node-dev . /src/index.ts",
"start": "tsc && node . /build/index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
dotenv 🤫
DB_HOST =
DB_USER =
DB_PASS =
DB_NAME =
node_modules
package-lock.json
build
.env
index.ts 🏁
import express, { Express } from "express"; const app: Express = express();
import knex from "knex"; app.use(express.json());
import cors from "cors"; app.use(cors());
import dotenv from "dotenv";
import { AddressInfo } from "net"; const server = app.listen(process.env.PORT || 3003, () => {
if (server) {
dotenv.config(); const address = server.address() as AddressInfo;
console.log(`Server is running in http://localhost:
export const connection = knex({ ${address.port}`);
client: "mysql", } else {
connection: { console.error(`Failure upon starting server.`);
host: process.env.DB_HOST, }
port: 3306, });
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
},
});
Instalando as dependências para autenticação
💾● uuid
npm i uuid
npm i @types/uuid -D
● Bcrypt
npm i bcryptjs
npm i @types/bcryptjs -D
● JWT
npm i jsonwebtoken
npm i @types/jsonwebtoken
Obrigado!