无法访问 Node.js 中的其他文件
Cant access other files in Node.js
注意: Stack Overflow 上有相同的问题,但这不是重复的。请仔细阅读。
我刚开始在 Node 上使用 Socket.io,在我的 HTML 文件中,我无法访问其他文件,例如图片。我在 Stack Overflow 上看到了这方面的答案,但 none 对我有帮助。
我正在向客户端提供一个 HTML 文件,我的 HTML 文件位于 /client/display/index.html
这是我的尝试:app.use(express.static(path.join(__dirname, 'public')));
以及它的变体(包括文件夹名称而不是 public),我在文件顶部需要路径,但我收到此错误:
ReferenceError: express is not defined
at /home/runner/Buzzer/index.js:6:9
at Script.runInContext (vm.js:130:18)
at Object.<anonymous> (/run_dir/interp.js:209:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47
我已经安装了所需的一切。这是我添加的错误:
const path = require('path');
app.use(express.static(path.join(__dirname, '/')));
下面是我的节点文件中的一些其他顶级内容:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
如果有人能帮助我,我将不胜感激。
[编辑]
好像如果我把任何东西放在一个文件夹里,js文件找不到它。
正如您在错误中看到的那样:'ReferenceError: express is not defined',您需要要求 express 才能调用静态方法,试试这个:
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
const path = require('path');
app.use(express.static(path.join(__dirname, '/'));
好的,我意识到 ('express')()
不同于 ('express')
。
我补充了:
var express = require('express');
const path = require('path');
app.use(express.static(path.join(__dirname, '/')));
这解决了我的问题。
注意: Stack Overflow 上有相同的问题,但这不是重复的。请仔细阅读。
我刚开始在 Node 上使用 Socket.io,在我的 HTML 文件中,我无法访问其他文件,例如图片。我在 Stack Overflow 上看到了这方面的答案,但 none 对我有帮助。
我正在向客户端提供一个 HTML 文件,我的 HTML 文件位于 /client/display/index.html
这是我的尝试:app.use(express.static(path.join(__dirname, 'public')));
以及它的变体(包括文件夹名称而不是 public),我在文件顶部需要路径,但我收到此错误:
ReferenceError: express is not defined
at /home/runner/Buzzer/index.js:6:9
at Script.runInContext (vm.js:130:18)
at Object.<anonymous> (/run_dir/interp.js:209:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47
我已经安装了所需的一切。这是我添加的错误:
const path = require('path');
app.use(express.static(path.join(__dirname, '/')));
下面是我的节点文件中的一些其他顶级内容:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
如果有人能帮助我,我将不胜感激。
[编辑]
好像如果我把任何东西放在一个文件夹里,js文件找不到它。
正如您在错误中看到的那样:'ReferenceError: express is not defined',您需要要求 express 才能调用静态方法,试试这个:
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
const path = require('path');
app.use(express.static(path.join(__dirname, '/'));
好的,我意识到 ('express')()
不同于 ('express')
。
我补充了:
var express = require('express');
const path = require('path');
app.use(express.static(path.join(__dirname, '/')));
这解决了我的问题。