[英]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.js
與list.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.