2016-11-10 66 views
0

我有一個ExpressJS項目,我想在另一個項目中使用.js模塊。我使用require來獲取.js模塊,但由於路徑不正確,無法找到模塊。如何查看或查找本地模塊的正確路徑。如何在使用require時找到.js文件的正確路徑

這裏是我的項目層次/結構 enter image description here

這就是我裏面programController.js嘗試 - 還有一點我不太明白用「」在路徑字符串中。

var Program = require('.././program.js'); 
var FinishProgram = require('.././finishProgram'); 
+0

在您的例子這將是'../../機型/ program'。但是當你開始使用這樣的路徑時,它並不好。我傾向於使用我自己的應用程序node_modules。 – Keith

回答

2

路徑中的. and .. notation表示路徑相對於到它們所需的文件。相同的目錄該文件是在內部(也被稱作當前工作目錄)

.. - - 當前目錄的父目錄內

含義...通配符

.

將這些數字的倍數一起使用時,會創建相對路徑模式。因此,對於programController.js訪問program.js你的路徑應該是

var Program = require('../../models/program');

這條道路意味着,漲2個文件夾到App目錄,並找到models文件夾,然後加載文件program.js

遵循相同的規則,你也可以訪問finishProgram.js

var FinishProgram = require('../../models/finishProgram');

+0

感謝您的回答@peteb,它的工作原理!但我無法弄清楚這個路徑字符串是如何工作的。在app_server裏面 - > routes - > route.js我需要app_server中的所有控制器 - > controllers - > .js - require需要怎麼樣? –

+0

您是否要求所有這些文件都在單個「require」中,或者您是否在爲要包含的每個控制器文件執行1'require'? – peteb

+0

1需要route.js文件中的每個控制器 –

1

.代表當前目錄,在您的情況下是多餘的。

路徑是簡單的相對路徑,用於確定如何導航到所需的文件。

這應該爲你工作:

var Program = require('../../models/program'); 
var FinishProgram = require('../../models/finishProgram'); 

注意,擴展.js不是必需的。

相關問題