learnyounode
$ node -v
$ v15.14.0
$ sudo apt-get install -y nodejs # versao antiguita
$ brew install node
$ cinst nodejs.install
$ nvm install v16.5.0
$ nodist v16.5.0
node
npm
node
, executador de arquivos JavaScript;npm
e seu irmão mais novo irresponsável npx
npm
(Node Packaged Modules?) é um gerenciador de pacotes tipo
Ruby Gems (ruby), NuGet
(.NET), pip
(python), maven
/gradle
(Java)
npm
é:
package.json
:
{
"name": "bespoke-math",
"version": "1.2.0",
"dependencies": {
"katex": "^0.6.0"
}
}
$ npm install <nome-do-pacote>
$ npm install -g <nome>
npm install --global <nome>
matematica.js
function fft(sinal) {
// transforma fourier
return ....;
}
module.exports = {
fft
}
principal.js
const mat = require('matematica.js')
console.log(mat.fft([...]))
.mjs
.
matematica.mjs
function fft(sinal) {
// transforma fourier
return ....;
}
export {
fft
}
principal.mjs
import { fft } from './matematica.mjs'
console.log(fft([...]))
Um dos workshops ensina alguns conceitos acerca do Node.js: o learnyounode
npm
:
$ npm install -g learnyounode
learnyounode
é um programa em linha de comando e queremos
poder executá-lo a partir de qualquer pasta $ learnyounode
$ node programa1.js
$ learnyounode verify programa1.js
script
require
que possibilita a
inclusão de um arquivo no contexto de outroconst fs = require('fs'); // importa o módulo 'file system'
const arquivos = fs.readdirSync('.'); // diretório atual
const matematica = require('./matematica'); // .js é opcional
console.log(matematica.constantes.PI());
matematica.js
, que é um objeto definido
da forma como quisermos, no arquivo matematica.js
require
, você deve atribuir
sua interface pública a um objeto global chamado module.exports
.
matematica.js
:
module.exports = {
constantes: {
PI: 3.14159
},
soma: function(a, b) { return a + b; },
multi: function(a, b) { return a * b; }
};
fs
, para
ler um diretóriopath
, para
recuperar uma extensão
à partir de um caminho de arquivonet
, para iniciar uma conexão TCPhttp
, para realizar uma requisição HTTP