簡體   English   中英

設置Node.js App目錄

[英]Setting Up Node.js App Directory

我對使用Node.js甚至使用命令行完全陌生,所以這個問題可能非常基礎,但是我找不到解決方案。

我正在嘗試使用Node.js和NPM設置應用程序目錄。 出於某種原因,每當我嘗試使用port:5000時,都會出現“無法獲取/”錯誤。 我的問題是,為什么我的應用程序目錄設置不起作用?

我已經安裝了connect和serve-static,但是它不會檢索文件並在端口5000上進行偵聽。我已經在我的用戶kstach1中創建了server.js文件。 這是我在該文件中包含的代碼:

var connect = require('connect');
var serveStatic = require('serve-static'); 
var app = connect(); 

app.use(serveStatic('../angularjs')); 

app.listen(5000);

所以,我不太明白為什么它不會引用我要存儲應用程序的angularjs文件夾。 我已經通過在名為test.html的文件夾中添加文件並輸入localhost:5000 / test.html進行了測試,但仍然收到“無法獲取/test.html”錯誤。

我知道Node工作正常,因為我可以在命令行中輸入腳本,並且腳本可以提供正確的輸出。 我以用戶(kstach1)的身份進行此操作。

我唯一想到的可能是做錯的是文件所在的位置。 我的Mac(kstach1)上的root用戶文件夾中有angularjs文件夾,以及server.js文件。 這不正確嗎? 如果這不是問題,是否是因為安裝了Node(usr / local / bin / node)的位置? 到目前為止,我的研究使我認為我的問題還可能是我需要將安裝目錄添加到我的路徑中。 但是,除非我知道是這種情況,否則我不希望對此感到困惑。

任何幫助將不勝感激。

我對伺服靜態包裝進行了一些研究,並復制了您提供的代碼。

我的項目文件夾位於“ C:\\ teststatic”,帶有靜態文件的文件夾為:“ C:\\ angularjs”,也使用位於“ angularjs”文件夾中的“ text.html”。

當運行您提供的代碼並轉到localhost:5000時,它的確返回“ Cannot GET /”。 這很可能是因為沒有聲明“ /”文件。 轉到localhost:5000 / test.html對我有用,因此您可以嘗試設置“ /”,如下所示:

app.use(serveStatic('../angularjs', {'index': ['test.html', 'index.html']}));

看看是否適合您。 如果不是,則應仔細檢查目錄名稱/位置。

編輯:從閱讀您發表的評論:改為嘗試此:

app.use(serveStatic('angularjs'));

我建議將您的angularjs文件夾上移到public /文件夾中主項目的目錄中。 將所有靜態資產都公開/公開是一個非常標准的約定。 然后,您可以使用path模塊自動解析您的路徑,並將其插入到您具有'../angularjs'的位置:path.join(__ dirname,'public')。

因此,您的代碼如下所示:

var connect = require('connect');
var serveStatic = require('serve-static'); 
var app = connect(); 
var path = require('path');

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

app.listen(5000);

而且,您的目錄結構如下所示:

server.js
public/
    angularjs/
        test.html

然后,您應該能夠使用localhost:5000 / angularjs / test.html查看您的test.html

暫無
暫無

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

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