Skip to content

Latest commit

 

History

History
142 lines (101 loc) · 3.69 KB

02.1.modules.md

File metadata and controls

142 lines (101 loc) · 3.69 KB

Fyrirlestur 2.1 — Einingar

Vefforritun 2 — HBV403G

Ólafur Sverrir Kjartansson, osk@hi.is


jsdoc

  • Leið til að skjala JavaScript kóða
    • Svipar til JavaDoc
  • Margar leiðir til að merkja kóða
  • Gott að nota frekar en að búa eitthvað til sjálf

/**
 * Read a file.
 *
 * @param {string} path - Path to file
 * @returns {Promise} Promise that represents the file content
 */
function readFile(path) {
  // ...
}

  • jsdoc á NPM útbýr skjölun útfrá jsdoc
  • npm install -g jsdoc
  • jsdoc app.js

Einingar

  • Getum og ættum að skipta forritunum okkar upp í einingar
  • Með því verður...
    • auðveldara er að hugsa um forritið
    • auðveldara að vinna með flækjustig
  • Node.js kemur með nokkrum einingum
    • Getum sótt aðrar gegnum NPM
    • Eða skrifað okkar eigin

Einingar í node

  • Einingakerfið í node byggir á CommonJS
    • Varð til þegar fólk fór að nota JavaScript utan vafra og þurfti leið til að pakka saman virkni
    • Hleður einingum synchronously
  • Snýst um að exporta gögnum úr einingum og sækja með require

module.exports

  • Til að veita aðgang að virkni í einingu þurfum við að exporta einhverju
  • Gerum það með því að skilgreina hvaða gildi sem er á module.exports
    • module.exports = 1; – Gildinu 1 er skilað úr module
    • module.exports = () => {}; – falli skilað
    • module.exports = { foo: 'bar' }; – hlut skilað

Node.js: Modules


Kóða skipt upp

  • Nokkrar leiðir til að skipta upp í módúla:
    • Stakt skjal, t.d. app.js
    • Mappa með virkni, inngangspunktur er skrá nefnd index.js innan hennar
    • Mappa með virkni, inngangspunktur skilgreindur í package.json undir main lykli

require

  • Notum pakka með
    • const pakki = require('<nafn-á-pakka>');
  • Ef engin ending er skilgreind er gert ráð fyrir að skrá innihaldi JavaScript
  • Ef ending er json eru json gögn í skrá þáttuð og þeim skilað

node.js mun leita eftir reglu:

  • Ef strengur pakka byrjar á ./, / eða ../ er leitað
    • ./ – í sömu möppu og skrá er í
    • / – eftir nákvæmlega uppgefinni slóð
    • ../ – í möppu fyrir ofan núverandi möppu
  • Annars er leitað /node_modules í núverandi möppu, síðan fyrir ofan og koll af kolli

import og export

  • ECMAScript 2015 skilgreinir aðra leið með import og export
    • Almennt ekki kominn nógu góður stuðningur
  • Node 9.4 hefur experimental stuðning ef við keyrum
    • node --experimental-modules file.mjs
    • Skrár verða að hafa endinguna mjs til að geta notað
  • Flókið því import export hleður einingum asynchronously

export default {
  foo: 'hello world',
}

export const bar = 'foo bar';
import foo from './export';
import { bar } from './export';
import { bar as baz} from './export';

  • Skýrari syntax
  • Nefnd export
  • Stutt af Babel, Webpack o.fl, en þar er að einhverju leiti svindlað og öllu hlaðið synchronously
  • Munum sjá þegar við förum í React
  • An Update on ES6 Modules in Node.js

Publisha á NPM

  • Þegar við höfum skrifað frábær forrit sem vel er hægt að endurnýta er auðvelt að koma því á NPM
    • Búa til notanda á NPM
    • Skilgreina name og version í package.json
    • Keyra npm publish
    • Gróði!