簡體   English   中英

如何在模塊中導入“path.join”?

[英]How to import "path.join" in module?

我在下面遇到問題。 據我所知,這是因為我在package.json文件中添加了"type": "module" 但是我們有辦法在模塊中轉換下面的代碼嗎? 到目前為止我找不到好的資源。

const model = require(path.join(__dirname, file))( ReferenceError: require is not defined


我的代碼:

const model = require(path.join(__dirname, file))(
      sequelize,
      Sequelize.DataTypes
    );
    db[model.name] = model;

您可以使用動態導入來復制它。 這是使用您的代碼的示例:

import(path.join(__dirname, file))
    .then(mod => {
        const model = mod(sequelize, Sequelize.DataTypes);
        db[model.name] = model;
    });

請注意,這是異步運行的。 如果您使用的是支持頂級等待的最新版本的 Node.js,或者此代碼正在異步 function 中運行,那么您可以改用此代碼:

const mod = await import(path.join(__dirname, file));
const model = mod(sequelize, Sequelize.DataTypes);
db[model.name] = model;

如果這回答了您的問題,那么您可以將其標記為正確。

您正在調用名為require的 function 並且您收到一個錯誤,告訴您它未定義。 這很好地表明您的require function 確實未定義。

您很可能想使用 RequireJS: https://requirejs.org/

在您嘗試調用require時,您需要確保 RequireJS 已經加載並正確初始化。

如果你使用 NodeJS,你需要安裝 RequireJS,比如

npm install requirejs

如果您嘗試在瀏覽器中使用它,則需要通過script標簽鏈接它。 這里有更多信息和實際示例的教程: https://www.tutorialspoint.com/requirejs/index.htm

暫無
暫無

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

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