Os seguintes scripts estão disponiveis com yarn run SCRIPT
ou npm run SCRIPT
Script | Descrição |
---|---|
test | Roda o linter, roda os testes unitários e os testes de integração, em sequência |
start | Inicia o servidor com hot auto-reload utilizando o nodemon |
dev | Inicia o servidor de desenvolvimento com hot auto-reload utilizando o nodemon |
dev-win | Inicia o servidor de desenvolvimento com hot auto-reload utilizando o nodemon em legacy mode para windows |
lint | Roda o ESLINT para conferir o styleguide do código |
prod | Inicia o servidor de produção com hot auto-reload utilizando o nodemon |
seed | Alimenta o banco de dados através das estratégias na pasta seed |
test:integration | Roda apenas os testes de integração, uma única vez |
test:integration-server | Inicia o servidor de desenvolvimento dos testes de integração, com auto-reload |
test:unit | Roda apenas os testes unitários, uma única vez |
test:unit-server | Inicia o servidor de desenvolvimento dos testes unitários, com auto-reload |
test:report | Gera o relatório de cobertura dos testes |
Vamos seguir um padrão de organização de pastas para ficar cada coisa em seu lugar e clean.
Temos nosso entry point index.js
que vai inicializar nossa aplicação.
Também temos o nosso arquivo .env
que abriga as variáveis de ambiente que usaremos
A pasta config abriga os scripts pra inicializar o server e a conexão do mongoose. A medida que precisarmos de novos scripts de configuração ou conexão da API, coloque-os aqui.
Sabe aquele GET api/v1/module
que só tem a função de dar um GET da entidade e retornar? Muitas vezes você vai utilizar métodos que são idênticos em múltiplos models. É pra isso que essa folder existe. Ela abriga pequenas ações reaproveitáveis ao invés de poluir os controllers com códigos iguais. Utilize quantas e quais sentir necessidade, a maioria das vezes serão operações com o mongoose.
Coloque aqui os arquivos helpers, funcões modularizadas que vão facilitar a manutenção do seu código. Diferente do actions as funções aqui abrigadas não tem relação com controllers, elas podem fazer simples operações como criptografar uma string ou calcular uma média.
Divida os helpers em folders como achar conveniente (ex: helpers/math
para operações matemáticas, helpers/string
para manipulação de strings, etc).
Aqui é onde vive a lógica e as rotas de sua API. Antes de cada módulo em si, precisamos versioná-los, abrigando as pastas v1
, v2
, e etc.
Módulos da versão 1 da nossa API. As APIs simples e com poucos clientes terão, na maioria das vezes, apenas uma versão. Ainda sim deveremos versioná-los.
Pra cada módulo de nossa API, criaremos uma pasta aqui dentro.
Além disso também temos um arquivo routes.js que "aplicam" as rotas dos módulos de sua versão. Por quê um routes.js por versão? Porque em uma determinada versão você pode não possuir uma rota X, ou possuir uma Y com nome diferente, ou até uma Z nova. É bom fazer as coisas dinâmicas, mas não dá pra pensar em muita mágica em uma situação dessas.
Para cada módulo nós vamos possuir os seguintes files:
É aqui que definimos nossos endpoints desse módulo. Alguns módulos não possuem criação ou delete por exemplo. Outros possuem alguns sub-documentos que devem ser servidos. Declare todas as rotas nesse arquivo.
Quando cairmos nas rotas, o que a API deve fazer? Essa responsabilidade é de nosso controller, que vai utilizar actions comuns do mongoose e/ou outros métodos que você vai cadastrar nesse file.
Auto-explicativo. Defina aqui o schema e model do mongoose de seu module, se tiver algum.
Você diversas vezes vai precisar validar parâmetros de criação e edição de dados, além de algumas lógicas customizadas (Ex: não pode possuir mais de uma moto vermelha no sistema). É aqui que você vai criar essas validações. Elas rodam no formato de middleware do express, o que significa que a sua rota só vai chegar ao controller se passar no validator cadastrado.
expressjs expressjs是一个基于nodejs的web开发框架:http://expressjs.com/,这篇博客目的就是用expressjs写一个关于products的最简单的RESTful API 一个最简单express的例子 package.json { "name": "hello-world", "description": "hello world of ex
在express中给router设置不同的请求接口实现restful规范 express实现后端渲染 app.js配置router router通过api传数据给ejs渲染模板 ejs实现静态和动态的页面渲染 router通过api传数据 前端请求方式 get post put delete head all 以上的请求方式统称为: restful api 通过restful api 来设计后端接
参考自 REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式。 HTTP 方法 以下为 REST 基本架构的四个方法: GET - 用于获取数据。 PUT - 用于更新或添加数据。 DELETE - 用于删除数据。 POST -
本文主要研究Node.js RESTful API和Express框架的单元测试。 关于Mocha和Istanbul的详细使用,请参考:使用Mocha和Istanbul实现Node.js单元测试和覆盖率 Github: https://github.com/prufeng/autotest-node Install npm i -D nyc npm i -D mocha npm i -D chai
In this article, I want to show you a quick and solid way to set up a REST-API with ExpressJS. This does not include any kind of authentication or authorization. We will just be setting up one single
从零开始nodejs系列文章 ubuntu下nodejs使用Express开发环境搭载 Nodejs开发框架Express3.0开发手记–从零开始 Nodejs开发指南博客实例(支持Express3.0) 用nodejs,express,ejs,mongo,extjs实现了简单了网站后台管理系统nodejs框架express4.2 容易入门 Install MongoDB on Ubuntu 拿n
node.js框架express获取post请求参数 1.方法1 //引入express框架 const express = require('express'); //下载并引用body-parser框架 以获取express框架 const bodyParser = require('body-parser'); //创建网站服务器 const app = express(); //拦截所有的
1.Express 中获取get方法请求参数 Express 内置了一个API,可以直接通过 req.query 获取 2.Express 中获取post方法请求参数 在express中没有内置获取表单Post请求体的API,需要第三方包 body-parser 1.安装 npm i body-parser --save 2.引包 let bodyParser = require('body-pa
express-rest-api-boilerplate Express REST API with JWT Authentication and support for sqlite, mysql, and postgresql authentication via JWT routes mapping via express-routes-mapper support for sqlite,
Node.js Express API with TypeScript 3 Node.js Express API with TypeScript 3. Supports MongoDB Description This skeleton will help you to build your own Node.js Express Mongodb API using TypeScript 3.
Express & ES6 REST API Boilerplate This is a straightforward boilerplate for building REST APIs with ES6 and Express. ES6 support via babel REST resources as middleware via resource-router-middleware
Express ES2017 REST API Boilerplate Boilerplate/Generator/Starter Project for building RESTful APIs and microservices using Node.js, Express and MongoDB Features No transpilers, just vanilla javascrip
express-mongodb-rest-api-boilerplate Also express-graphql-mongodb-boilerplate - GraphQL API Boilerplate Authentication from scratch Sign In, Sign Up, Reset Password, Change Password, Update User E-mai
Express & mongoose REST API Boilerplate in ES6 with Code Coverage Sponsor You can support the project by checking out our sponsor page. It takes only one click: Overview This is a boilerplate applicat