簡體   English   中英

如何從nestjs中的另一個文件導入變量?

[英]How to import a variable from another file in nestjs?

我嘗試從另一個文件導入變量,但沒有成功。 在我的第一個文件中,我有:

import { Injectable } from '@nestjs/common';

@Injectable()
export class Hello {
}
var varhello = "hi";

在另一個我想添加 varHello 的地方,我有:

import { Injectable } from '@nestjs/common';
import * as hello from "./Hello";

@Injectable()
export class AppService {
  getHello(): any {
    console.log(hello.Hello)
  }
}

至少我的 console.log 返回了一些東西:[class Hello],但我希望它返回文本“hi”。 有誰知道如何解決我的問題?

最佳實踐是將 greeting 變量保持在 hello 類中私有,並具有返回/修改可由其他類使用的屬性的公共方法,然后在任何需要它的地方注入 Hello 服務並調用該方法。

import { Injectable } from '@nestjs/common';

@Injectable()
export class Hello {
  private _greeting: string = 'Hi';

  get greeting(): string {
    return this._greeting;
  }
}

然后在您的服務中:

import { Inject, Injectable } from '@nestjs/common';

import { Hello } from './Hello';

@Injectable()
export class AppService {
  @Inject()
  protected hello: Hello;

  getHello(): void {
    console.log(this.hello.greeting);
  }
}

或者,如果你願意,你可以像這樣導出一個 const 變量

// Hello.ts file
export const hello = 'Hi';

在您的服務中,您只需導入它

import { Injectable } from '@nestjs/common';

import { hello } from './Hello';

@Injectable()
export class AppService {
  getHello(): void {
    console.log(hello);
  }
}

但是這樣它就只是一個常量,你將無法覆蓋它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM