Hvordan jeg byggede en jobskrabe webapp ved hjælp af Node.js

Skrabning af job fra Internettet er nu blevet lettere takket være Indreed.

Om indreed

Indreed er et Rest API til skrotning af job fra faktisk og rundt på nettet. Det drives af mit personlige webskraberingsprojekt og er lagdelt på et resten API. Det er et ægte Rest API og kan bruges fra enhver platform ved hjælp af ethvert programmeringssprog. Det har support til COR'er, så du kan bruge det fra eksterne websider. Indreed understøtter en lang række filtre, som du kan bruge til at finjustere dine jobresultater. Med Indreed kan du få næsten alle de oplysninger, du har brug for om et job på nettet. Dokumenterne kan findes her.

Opbygning af webappen

Til denne tutorial bruger vi Node.js til at oprette en web-app til en liste over job. Teknologibunken, vi skal bruge, inkluderer:

  1. Axios til udførelse af Rest API-opkald
  2. Express til serveren
  3. Styr til skabelonsproget.
  4. Og ja, vi bruger MDL til vores UI / UX.

Lad os begynde…

Åbn din terminal:

mkdir jobby && cd jobby
npm start -y
npm installation - gem ekspress-aksios ekspressstyr
npm installation - Gem-dev nodemon

Når du har gjort det, skal du åbne den oprettede package.json-fil i din foretrukne teksteditor, og du skal se noget lignende nedenfor:

package.json

Jeg har allerede tilføjet en beskrivelse, peget min hovedretning på app.js, og jeg tilføjede nøgleord, mit navn og også nodemon til live genindlæsning.

Lad os nu konfigurere en grundlæggende ekspresserver og styretempleringsmotor. Opret app.js-fil i dit projektmappe:

Sørg for, at du har den samme mappestruktur som nedenfor:

mappeopsætning (ignorere data.json)

Nu er vi nødt til at oprette en index.hbs-fil i mappen Visninger, der indeholder vores HTML:

For at køre appen kan du dybest set bruge noden app.js. Hvis du vil bruge nodemon, kan du gøre nodemon app.js.

Du kan nu åbne http: // localhost: 5000 i din browser.

Hurra!

Lad os nu prøve at få job fra Indreed API ved hjælp af aksier og derefter bruge styret til at formatere det.

Åbn app.js, og opdater app.get ("/"):

Udskift derefter {{body}} med nedenstående:

{{# hvert job}}    
   
   
   

{{this.title}}

       
   {{this.summary}}        
   

Tillykke, du har lige bygget en simpel jobfortegnelse webapp.

Lad os fordele det, vi lige har bygget:

  • Vi sendte en GET-anmodning til Indreed API ved hjælp af aksier
  • dette hentede webudviklerens jobfortegnelser
  • og returnerede JSON-data, som vi sendte ind i styret for at hjælpe os med at gennemgå dem
  • resultaterne vises.

Vores app viser bare webudviklerjob. Hvad hvis vi ville se andre typer job? Det ville være fjollet at gå ændre det fra kodesiden. Så det, vi skal gøre næste, er at oprette en enkel form til at filtrere jobresultater.

Gør det muligt at oprette et / søgepunkt:

Opret derefter search.hbs:

Lad os dog tilføje nogle CSS:

Opdater derefter din hjemmesideskabelon med denne:

Nu hvor vi er færdige med skabelonerne, lad os gå rydde op i vores app.js:

Det er det, vi er færdige.

Nogle forslag

  1. Placering: Den app, der registrerer brugerens placering, er noget, du kan tilføje for at gøre Indreed smartere. Jeg vil foreslå, at du bruger Express-IP, en ekspress middleware til at få IP-oplysninger. Du kan bruge det som nedenfor:

req.ipInfo returnerer muligvis null, hvis du er på localhost (det er grunden til, hvis if-sætningen er der).

2. Avancerede søgeresultater: Indreed har en række filtre, du kan bruge til at filtrere dine jobresultater, og vi har kun brugt q og l. Så du kan tilføje en formular, der bruger nogle af de tilgængelige filtre:

3. Autentificering: Du kan tilføje et godkendelsessystem til at personalisere søgeresultater for brugeren. Med dette kan brugere vælge de kategorier af job, de gerne vil se, og du vil fortsætte med at foreslå job, der vedrører det, når de logger på.

4. Cache: Hvis du vil tilpasse søgeresultater for en bruger uden at gennemgå godkendelse, kan du vælge Cache.

Kort note

Jeg er skaberen af ​​Indreed API, og det er i øjeblikket i sin alfa-fase. Som du kan se, er det hostet på Heroku og har stadig brug for meget forbedring med hensyn til strukturering, ydelse, hastighed og hosting. For at få dette til at gå videre, kan du bidrage til udviklingen ved at kontakte mig (oyetoketoby80 [at] gmail.com), eller du kan også hjælpe gennem min patreonside. http://patreon.com/oyetoketoby

Det er alt for denne artikel. Du kan hente koden herfra og se også live demo: http://jobbyio.herokuapp.com.

Hvis du nød denne artikel, skal du klappe og dele med andre.