typescript - Angular2 integration till kärnsystemet och node.js-bibliotek


Jag studerar Angular2, Typescript och reaktiv programmering. Jag skrev en enkel Typescript-applikation i NodeJs som övervakar en katalog för förändringar (kärn-OS och filsystem). I en enda fil. Här är den https://github.com/maroshi/nodejs-directory-monitor/blob/master/app.ts

Nu vill jag lägga till ett interaktivt GUI till det med hjälp av Angular2. Jag vill integrera min katalogövervakare som en tjänst i Angular2-applikationen.

Frågorna.

  1. Är det arkitektoniskt säkert/korrekt att låta en Angular2-applikation få åtkomst till filsystemet och operativsystemet (förutsatt att det är en avancerad NodeJs-server)?
  2. Hur man integrerar NodeJs fs-verktygsbiblioteket i en Angular2-applikation.

Jag använder Angular2-snabbstartsmallen från https://github.com/angular/quickstart.

Jag ändrade app.component.ts

import  * as FileSystem  from 'fs';
import { Component, OnInit } from '@angular/core';`

@Component({
    selector: 'my-app',
    template: `
        <h1>My First Angular 2 App</h1>
        <p>Some FileSystem info: {{dirInfo}}</p>
    `
})
export class AppComponent implements OnInit { 
private proccesInfo: string;
    ngOnInit(){
        let tmpString: string[] = FileSystem.readdirSync('/home');
        this.dirInfo = tmpString != null ? tmpString[0] : 'undefined';
    }
}

Detta kompilerar bra men misslyckas med att bootstrapa med följande fel:

GET XHR http://localhost:3000/fs 404 (Not Found)

Error: patchProperty/desc.set/wrapFn@http://localhost:3000/node_moduleszone.js/dist/zone.js:769:27
    Zone</ZoneDelegate</ZoneDelegate.prototype.invokeTask@http://localhost:3000/node_modules/zone.js/dist/zone.js:356:24
    Zone</Zone</Zone.prototype.runTask@http://localhost:3000/node_modules/zone.js/dist/zone.js:256:29
    ZoneTask/this.invoke@http://localhost:3000/node_modules/zone.js/dist/zone.js:423:29

    Error loading http://localhost:3000/fs as "fs" from http://localhost:3000/app/app.component.js

Vänligen ge råd om denna undersökning.

Observera att tsconfig.json är den standard tsconfig.json från länken ovan. Kompilerar för NodeJs "module": "commonjs",

Tack Glädje och lycka

Dudi