Typescript server via node, extra bestand toevoegen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
Mijn vraag
...
Ik draai nu een webservertje mbv TS, en daar wil ik graag een extra bestand bij hebben / deployen in de vorm van een config.json

Relevante software en hardware die ik gebruik
...
package.json:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "name": "ts-server",
  "version": "1.0.0",
  "description": "Server in TS",
  "main": "index.js",
  "scripts": {
    "watch-ts": "tsc -watch",
    "watch-node": "node dist\\index.js",
    "watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript, Node\" -c \"yello.bold, cyan.bold\" \"npm run watch-ts\" \"npm run watch-node\""
  },
  "keywords": [
    "TS",
    "Server"
  ],
  "files": [
    "config.json"
  ],
  "author": "Bas",
  "license": "ISC",
  "devDependencies": {
    "@types/body-parser": "^1.17.0",
    "@types/express": "^4.16.0",
    "@types/node": "^10.12.15",
    "body-parser": "^1.18.3",
    "concurrently": "^4.1.0",
    "express": "^4.16.4",
    "express-basic-auth": "^1.1.6",
    "typescript": "^3.2.2"
  }
}


Wat ik al gevonden of geprobeerd heb
...

nu heb ik verschillende manieren geprobeerd om dat config.json bestand te deployen, maar het lukt me gewoon niet. Het bestand staat in de root van mijn project. het pad aanpassen met "./", of "../" ervoor geeft geen resultaat.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Niek_teg
  • Registratie: November 2010
  • Laatst online: 07-03-2024
Ik heb het idee je naar het verkeerde aan het kijken bent..

Het "files" field in je package.json beschrijft is pas van belang wanneer jouw applicatie ergens als dependency wordt geinstalleerd (zoals een npm package). zie de npmjs documentatie.

Wat je waarschijnlijk wil is je JSON file inladen in je applicatie en deze parsen naar een javascript object.
Hiervoor kan je het best gebruik maken van de File System API van Node.

De code om je bestand in te laden en te gebruiken in je applicatie zou er ongeveer zo uit komen te zien:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
import  * as fs from 'fs';

function getConfig(): Promise<any> {
    return new Promise((resolve, reject)=> {
        fs.readFile('./config.json', 'utf8',(err, data)=>{
            if(err) reject(err);
           resolve(JSON.parse(data));
         });
    })
}

getConfig().then(config => {
    // je config hier 
}).catch(err =>{
    // er ging iets mis met ophalen/parsen
})


Indien je toch iets anders bedoelt, laat het dan even weten :) Succes!

Edit: code uitgebreid naar een Promise, zodat je verzekerd bent dat configuration gevuld is na de aanroep van je functie

[ Voor 20% gewijzigd door Niek_teg op 14-03-2019 17:20 ]