從 NodeJS 中的外部文件通過 module.exports 導入?

數字灰帽

我正在嘗試從另一個文件導入一個函數。我嘗試這樣做:

主要.js:

const oauth2 = require('./utils/oauth2');
function startOAuth() {
  var token = oauth2.OAuth2.getToken();
}

實用程序/oauth2.js:

module.exports =  (function() {

    window.OAuth2 = {
        
        /**
         * Initialize
         */
        init: function() {
            this._key = "token";
        },
        /**
         * Get Token
         * 
         * @return OAuth2 access token if it exists, null if not.
         */
         getToken: function() {
            try {
                return window['localStorage'][this._key];
            }
            catch(error) {
                return null;
            }
         }
       };
    
    OAuth2.init();
})();

我收到以下錯誤:

未捕獲的類型錯誤:無法讀取未定義的屬性(讀取“getToken”)

我做錯了什麼?為什麼 NodeJS 找不到getToken()函數?非常感謝您的幫助!

PS:我知道在這裡說我是初學者是錯誤的,但我是初學者;)

什托巴

您正在導出調用函數而沒有返回的結果。您分配給 的module.exports是一個稱為立即調用函數表達式的模式。

如果您改為分配OAuth給一個變量,init()在聲明後立即調用,然後將其導出,則代碼應該可以工作

const OAuth2 = {
  /**
   * Initialize
   */
  init: function () {
    this._key = "";
  },
  /**
   * Get Token
   *
   * @return OAuth2 access token if it exists, null if not.
   */
  getToken: function () {
    try {
      return window["localStorage"][this._key];
    } catch (error) {
      return null;
    }
  },
};

OAuth2.init();

module.exports = OAuth2;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在NodeJS中var export = module.exports = {}

NodeJS的多个module.exports

在 nodejs 中调用 module.exports 的未定义结果

在 module.exports 之前在 nodejs 中动态需要

NodeJS / Express中的“ module.exports”和“ exports.methods”是什么意思?

React Js,Web Pack - 無法將 css 文件從 node_module 導入到 React 組件中

如何通過 VBA (MS Excel) 從導入的 XML 中刪除標籤?

NodeJS中的exports语句

Nodejs module.exports和简写if / else

NodeJS module.exports子模块

NodeJS module.exports无法正常工作

如何從標準輸入通過管道傳輸到 NodeJS 中的 http 請求?

在 nodejs 中導入模塊

如何在nodeJS中使用module.exports请求.json文件

從 Jupyter Notebook 導入子文件夾文件

無法從父文件夾導入模塊

如何從 json 文件導入數組?

typescript中的module.exports

Javascript如何使用模塊從文件中導入/導出所有內容?

函数未在 nodejs 上用 module.exports 定义

nodejs,我不能 module.exports 超过 1 个功能

如何使用從 HTML 文件導入的 Pandas 從數據集中提取特定列?

Javascript:從從 XML 文件導入數據切換到從 JS 對像數組導入數據

通過nodejs從firebase實時數據庫中刪除舊節點

通過nodejs從firebase實時數據庫中刪除舊節點

無法從顫振中的不同目錄導入文件

如何從導入到組合框的 csv 文件中刪除花括號?

從 `<script context="module">` 運行導入的函數時出現“錯誤:'target' 是必需選項”

在文本文件中的兩個字符串之間導入數據並從文件中刪除導入的數據