[英]Node JS Express is not defined when I try to serve static files
我正在嘗試從應用程序目錄中的“www”目錄為應用程序提供靜態內容。
我的文件夾如下所示:
-www
--node_modules
--js
--index.js
--index.html
--package.json
我想使用 js 文件夾中的 main.js 文件,但是當我嘗試使用
<script src="/js/main.js"></script>
在 index.html 中,我的控制台給了我一個 GET 錯誤和 404 文件未找到。
我的代碼看起來像這樣:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(express.static(__dirname + '/www'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
當我嘗試運行服務器時,出現錯誤:
app.use(express.static(__dirname + '/www');
ReferenceError: express is not defined
有人可以告訴我為什么會發生這種情況嗎?
你忘記導入快遞了。
您還應該將非靜態文件移到“www”之外,因為這是您想要的“靜態文件”路徑。
var express = require('express');
var path = require('path');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var publicPath = path.resolve(__dirname, 'www');
app.use(express.static(publicPath));
app.get('/', function(req, res){
res.sendFile('index.html', {root: publicPath});
});
在您的代碼中,您尚未聲明任何名為 express 的變量。 如果沒有命名為 express 的變量,您可以如何調用它的變量/函數/鍵。
要使用 express./anything/ 您必須在代碼中聲明express變量。 可以通過
var express = require('express');
使用 Webstorm,如果我使用它就不起作用:
const express = require('express');
但是使用: var express = require('express');
也許它與Webstorm有關,也許它不是一個“好”的答案,但對我來說它解決了這個問題。
如果您的回答說 express 未定義,則在您的 cmd 或 bash 終端中,使用以下命令:-
$ npm install express
安裝成功完成后,使用以下命令需要 express 模塊:-
const express=require('express');
運行你的代碼。 請記住首先在本地主機服務器中嘗試。 將端口偵聽器添加到您的代碼中並嘗試一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.