簡體   English   中英

快遞:找不到模塊?

[英]Express : Cannot Find Module?

我正在使用Express進行一些路由,並且我想從signup.js調用靜態javascript文件中的函數,但出現錯誤提示

Error: Cannot find module './js/list.js' 

我的目錄結構如下:

app.js
-routes/signup.js
-public/js/list.js

在我的app.js文件中,有以下一行:

app.use(express.static(path.join(__dirname, 'public')));

在我的signup.js ,我有:

var listModel = require('./js/list.js');

我的list.js文件包含:

module.exports.list = function (userName, category) { 
  return ({
    "owner" : userNameName,
    "category" : category,
    "completed" : [],
    "planned" : [],
    "current" : [],
    "dropped" : [],
    "onHold"  : []
  });
}

為了將list函數導入到我的注冊文件中,我還缺少什么嗎? 謝謝!

由於它們具有不同的signup且列表具有不同的父目錄,因此NodeJS require函數將不將其視為兄弟姐妹。 因此你需要寫

var listModel = require('../public/js/list.js');

routes/signup.js內部

如果您有文件public/test.js ,則可以使用

var listModel = require('./js/list.js');

從內部要求依賴。

require模塊路徑應為:

var listModel = require('../public/js/list'); // it is fine to have the file extension

在您的情況下,由於signup.jslist.js位於不同的文件夾中,因此您必須指定其完整路徑。

var listModel = require('../public/js/list.js');

app.use(express.static(path.join(__dirname, 'public'))); 意味着當您轉到localhost (或應用托管的任何路由)時,您將有權訪問該文件夾。 因此,這意味着當您轉到localhost:3000/js/list.js您將有權訪問該文件夾。

暫無
暫無

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

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