Estoy haciendo una prueba fácil para tratar de obtener el nombre de mi computadora en una aplicación Electron usando Angular y nodejs.
Este es mi guion:
import { Component, OnInit } from '@angular/core'; import { hostname } from 'os' @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.css'] }) export class HomeComponent implements OnInit { constructor() { } ngOnInit(): void { console.log(hostname); } } También instalé npm i @types/node
Obtuve el siguiente error:
Error: src/app/components/home/home.component.ts:2:26 - error TS2307: No se puede encontrar el módulo 'os' o sus declaraciones de tipo correspondientes. importar {nombre de host} desde 'os'
¿Algunas ideas? esto debería ser sencillo y me siento tan tonto con tal problema...
Editar: ¡Agregué que esta es una aplicación de electrones!
No leí bien su pregunta.
el comentarista tiene razón, no puede importar el sistema operativo para hacer esto en una aplicación del lado del cliente angular.
en su lugar, no debería haber importaciones y puede acceder a través del documento o la ventana.
USO DEL DOCUMENTO
document.location.hostnameo
USO DE LA VENTANA
window.location.hostnameesto es bastante increíble, pero sin los controles ActiveX no funcionará e incluso entonces funcionará muy poco porque creo que casi todas las PC basadas en Windows tienen esto deshabilitado de manera predeterminada.
es fácil obtener la dirección IP del cliente, pero esto se vuelve increíblemente complejo. Puede probar el interceptor de http, pero parecía que estaba medio cocido en base a las tres horas de mi vida que dediqué a esto. Soy bastante tonto fundado para ser honesto.
El código correcto es
import * as os from 'os';Ejemplo de uso:
const hostname = os.hostname();