[construindo-apis-rest-com-nodejs] - Verificação no conteudo

Oi pessoal, bom estou lendo o livro construindo apis rest com NodeJS do Caio Ribeiro e gostaria de pedir uma revisão nesse livro, o conteudo esta com muitos erros, esta faltando partes e tem informações que não batem. Como ja trabalho com js e node estou conseguindo me virar mas imagino que muita gente tera problema.
Posso listar as coisas aqui se for necessario, mas realmente são muitas, acho que seria necessario uma revisão.
Alem de erros de grámatica tem erros de explicação e informações que não batem com o código descrito no livro, e também algumas informaçoes que foram “esquecidas” como a instalação de modulos e etc.

Concordo.

Não tenho muita fluência ainda com Node, mas já no primeiro capítulo do livro tive que “garimpar” a internet para colocar os códigos / exemplos para funcionar.

Eu também estou com vários problemas quanto ao código. Será que rola uma revisão e depois eles avisam a gente?

Concordo aqui (Meu post), descrevo alguns problemas com relação ao acompanhamento/estudo do livro.

aguardamos a revisão

Oi, estou nos primeiros passos com o nodejs e resolvi comprar esse livro pra conhecer um pouco mais do assunto, entretanto tive vários problemas quanto a continuidade do conteúdo. Alguns pontos vocês levantaram como a falta de mencionar a instalação de alguns módulos mas o que me fez travar foi o momento do bcrypt que não compila por problemas com o o node-gyn.

UPDATE

Olá pessoal, conseguir resolver o problema com o bcrypt, mas para isso tive que refazer meu ambiente de Dev, acredito que tinha algo sujando as variáveis de ambiente.

Meu Ambiente:

  • Windows x64
  • Node 5.6.0
  • NPM 3.6.0

Estou travado com uma coisa referente ao Mocha, no capitulo 8 quando executo o comando npm test, recebo a mensagem “NODE_ENV não é reconhecido como comando interno ou externo…”, preciso fazer alguma configuração adicional ?

a instrução test está conforme package.json abordado no capitulo


“test”: "NODE_ENV=test mocha test/**/*.js

Olá pessoal! Desculpem a demora pela resposta, pois ainda não me acostumei em usar esse fórum, a maioria dos problemas desse livro, já foram resolvidos pelas threads desse link: https://groups.google.com/forum/#!forum/apis-nodejs (recomendo que olhem se algumas threads que já foram resolvidas são parecidas com os problemas que vcs já passaram).

Estou atualmente revisando o livro, realmente surgiu alguns bugs graves (principamente da nova versão babel que surgiu bem no lançamento do livro) e em breve farei uma atualização geral no livro.

Obrigado!

Olá Caio,

Tem previsão de lançamento do livro revisado?

Att.

Entre março a abril, estarei atualizando o ebook.

Boa tarde
Alguém por um acaso conseguiu resolve o problema do babel? ^^
Eu uso Linux 14.04
node v5.8.0
npm v3.7.3
nvm v0.26.1
no meu caso quando executo o comando “node start” ele retorna um erro no seu callback mas dai resolvi executar o index.js do servidor ele diz que o import do express que esta dando problema
alguma solução?

Como solução paliativa, recomendo que utilize a versão anterior do babel, enquanto em breve farei uma atualização no ebook.

Para instalar uma versão específica e compatível do babel basta rodar os comandos abaixo:

npm install babel@5.8.23 --save
npm install babel-runtime@5.8.25 --save-dev

abs!

Muito obrigado pela solução Caio
revolveu a etapa que estava parado
Só que agora esta dando erro em alguns modulos por mais que instalei eles novamente o erro persiste
o log do erro é o seguinte:

/media/andre/Arquivos/Node/ntask-api/node_modules/sequelize/lib/model.js:170
throw new Error(“A column called ‘id’ was added to the attributes of '” + this.tableName + “’ but not marked with ‘primaryKey: true’”);
^

Error: A column called ‘id’ was added to the attributes of ‘Tasks’ but not marked with 'primaryKey: true’
at addDefaultAttributes (/media/andre/Arquivos/Node/ntask-api/node_modules/sequelize/lib/model.js:170:13)
at Model.init (/media/andre/Arquivos/Node/ntask-api/node_modules/sequelize/lib/model.js:717:24)
at Sequelize.define (/media/andre/Arquivos/Node/ntask-api/node_modules/sequelize/lib/sequelize.js:607:17)
at module.exports.Tasks (/media/andre/Arquivos/Node/ntask-api/models/tasks.js:2:26)
at Sequelize.import (/media/andre/Arquivos/Node/ntask-api/node_modules/sequelize/lib/sequelize.js:666:30)
at /media/andre/Arquivos/Node/ntask-api/db.js:25:34
at Array.forEach (native)
at Function.module.exports.fs.readdirSync.forEach.Object.keys.forEach (/media/andre/Arquivos/Node/ntask-api/db.js:23:23)
at Consign.into (/media/andre/Arquivos/Node/ntask-api/node_modules/consign/lib/consign.js:239:17)
at Object. (/media/andre/Arquivos/Node/ntask-api/index.js:13:3)
at Module._compile (module.js:413:34)
at Object.Module._extensions…js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:142:18)
"
tentei instalar a versão do sequilize que esta no json do gyphub mas ainda continuou na mesma --'
eu dei uma revisada no codigo porem ainda nao consegui localiza se tem algo errado
alguem poderia me da uma dica?

Esta faltando incluir no id o atributo primaryKey: true dentro de model/tasks.js, veja abaixo como deve ficar:

module.exports = (sequelize, DataType) => {
  const Tasks = sequelize.define("Tasks", {
    id: {
      type: DataType.INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    title: {
      type: DataType.STRING,
      allowNull: false,
      validate: {
        notEmpty: true
      }
    },
    done: {
      type: DataType.BOOLEAN,
      allowNull: false,
      defaultValue: false
    }
  }, {
    classMethods: {
      associate: models => {
        Tasks.belongsTo(models.Users);
      }
    }
  });
  return Tasks;
};

puts nao vi o mais obvio Lower case e upper case no “k” do primaryKey jurava que tava em upper hahaha e mania de pensa sempre no pior acabei nem percebendo
Muito obrigado Caio deu certo
Estou ansioso pela atualização do livro

Caio comprei seu livro faz 2 dias, estou no capitulo 9, tive que fazer alguma modificações devido a atualizações de módulos como babel e outros. Com certeza o livro precisa ser revisado, mas você fez um ótimo trabalho. Parabéns está me ajudando muito. Consegui concertar o problema com o babel criando o arquivo .babelrc:
{
“presets”: [“es2015”]
}

Para ajudar na revisão, caso não tenha corrigido, no capitulo 7 página 76 o método hooks deu um erro ao ser implementado como descrito nesta mesma página, consegui corrigir o erro implementando-o assim:

	classMethods: {
		associate: models =>{
			Users.hasMany(models.Tasks);
		},
		isPassword: (encodedPassword, password) => {
			return bcrypt.compareSync(password, encodedPassword);	
		}
	},		
	hooks:{
		beforeCreate: user => {
			const salt = bcrypt.genSaltSync();
			user.password = bcrypt.hashSync(user.password,salt);
		}
	}

talvez seja uma modificação feita em uma versão mais nova do modulo sequelize. Se eu estiver falando besteira me corrija. Como adendo, no livro não é mencionado que se crie no model Users o campo password. Mesmo sendo intuitivo que o model Users deva conter o campo password talvez se adiciona-lo na página 76 no lugar de //Os Campos desse modelo foram criados no capitulo 5 ajude aos iniciantes como eu. (Obs: Eu apanhei um pouco até descobrir que estava faltando este campo no model).
Bom é isso, espero que tenha ajudado de alguma forma, e parabéns pelo Livro. Está me ajudando muito.

Obrigado pelos feedbacks! Na versão inglês desse livro, já esta tudo atualizado e funcionando certinho: https://leanpub.com/building-apis-with-nodejs

Eu só preciso de um tempo livre para me dedicar em atualizar a versão pt-br, provavelmente entre abril e maio eu atualizarei o livro inteiro.

Olá, comprei o livro recentemente e sou novo em Node.js. seguindo o livro parei logo no exemplo do capitulo 2, mas consegui resolver seguindo os passos do livro em inglês ( https://leanpub.com/building-apis-with-nodejs) pena que a versão gratuita vai até o capitulo 2.

pois é, comprei esse livro para estudar este fds, mas acabou que estou passando maior parte consultando erros. Estarei aguardando a atualização também. Insatisfeito até o momento. :frowning:

Ola meu código apresentou alguns erros no Cap 8 porem corrigiu com o as atualizações do livro na versão em inglês disponível até o cap 4

O erro apresentado esta no babel e começou apos os ajustes sugerido no livro atualizado em inglês

NODE_ENV=test mocha test/**/*.js

/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/transformation/file/options/option-manager.js:126
if (!option) this.log.error("Unknown option: " + alias + “.” + key, ReferenceError);
^

TypeError: Cannot read property ‘error’ of undefined
at OptionManager.mergeOptions (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/transformation/file/options/option-manager.js:126:28)
at OptionManager.addConfig (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/transformation/file/options/option-manager.js:107:10)
at OptionManager.findConfigs (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/transformation/file/options/option-manager.js:168:35)
at OptionManager.init (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/transformation/file/options/option-manager.js:229:12)
at compile (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/api/register/node.js:117:22)
at normalLoader (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/api/register/node.js:199:14)
at Object.require.extensions.(anonymous function) [as .js] (/media/andre/Arquivos/Node/ntask-api/node_modules/babel-core/lib/api/register/node.js:216:7)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at /usr/lib/node_modules/mocha/bin/_mocha:310:3
at Array.forEach (native)
at Object. (/usr/lib/node_modules/mocha/bin/_mocha:309:10)
at Module._compile (module.js:413:34)
at Object.Module._extensions…js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:142:18)
at node.js:939:3
npm ERR! Test failed. See above for more details.

acredito que seja alguma incompatibilidade de modulo, tenho que atualiza algum modulo para a correção?

Caio tem alguma data prevista para atualização do ebook?
É que estou utilizando seu livro para construção de API para meu projeto de TCC sobre microservice
Caso não tiver alguma data em mente ou caso for meio distante , você poderia recomendar algum livro de API com node?

Olá pessoal! Desculpem a demora, semana passada atualizei meus livros de nodejs. O livro de Api agora esta usando versões atuais e que não quebram os exemplos do projeto piloto, se vocês compraram versão ebook vcs tem direito a download grátis, para conferirem olhem o github dos projetos:

Ntask API
Ntask Web

Abraços!