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