'require' 不适用于 index.html 运行 node.js
'require' is not available to index.html running on node.js
我有一个服务器应用程序使用它来显示主页
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "/index.html"));
});
我在 index.html 中的 js 文件的头部有这些行
<script src="/public/js/controller.js" type="module"></script>
<script src="/public/js/main.js" type="module"></script>
main.js 用于前端 js,而控制器用于后端,它导入 model.js 和 model.js 使用 fs
使用此行
const fs = require("fs");
但是当我尝试使用节点服务器 http://localhost:3000 加载 index.html 时,出现此错误
model.js:2 Uncaught ReferenceError: require is not defined
at model.js:2
所以我添加了 require.js 库,然后像这样使用它
<script src="/public/js/require.js" ></script>
然后我仍然得到这个错误
require.js:108 Uncaught Error: Module name "fs" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded
at makeError (require.js:108)
at Object.s [as require] (require.js:947)
at requirejs (require.js:134)
at model.js:2
有人可以请教一下,应该怎么做才能使这项工作正常进行?我在这上面停留了超过 2 天,我对 node.js 和这个 'require' 还很陌生.. 但我知道这是 node.js.[=24= 的一个非常重要的部分]
所以我想澄清一些 advise/help 不使用捆绑器和 运行 直接来自节点服务器的 html 页面必须处理的内容这个..
只是为了让我清楚 'this' 的意思,我想做的就是获取一个文件夹名称列表,我想将其用作前面的导航菜单(li 项目)-结束..我在node.js上使用这个命令来获取数组..
fs.readdir('./data/')
我需要在我的 index.html 中包含这个数组,它与 node.js 上的 运行 相同 server/folder/application..
我假设如果 node.js 正在显示一个 html 文件(带有 app.get)我将能够以这种方式使用 fs
命令..我是吗错误的?如果是这样,我需要做什么才能使用 readdir
并让数组在前端显示为菜单?
您可能将 server.js
作为 ES6 模块,这是一件好事,因为我自己花了一个小时来设置它。
你可以做到 但我做到了 import { promises as fs } from "fs";
因为我喜欢我的 fs 调用 async
.
给人一种 python 的感觉。
“fs”模块是 NodeJS 中的内置模块,可让您使用文件系统。它在客户端不可用(假设人们可以访问您的网页并操纵您的文件系统!!)。
您要做的是 get a list of folder names that you want use as navigation menu (li items) on the front-end
。为此,您可以使用“fs”模块在服务器端获取文件夹名称列表,然后使用模板引擎渲染包含数据的 HTML 文件。
我有一个服务器应用程序使用它来显示主页
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "/index.html"));
});
我在 index.html 中的 js 文件的头部有这些行
<script src="/public/js/controller.js" type="module"></script>
<script src="/public/js/main.js" type="module"></script>
main.js 用于前端 js,而控制器用于后端,它导入 model.js 和 model.js 使用 fs
使用此行
const fs = require("fs");
但是当我尝试使用节点服务器 http://localhost:3000 加载 index.html 时,出现此错误
model.js:2 Uncaught ReferenceError: require is not defined
at model.js:2
所以我添加了 require.js 库,然后像这样使用它
<script src="/public/js/require.js" ></script>
然后我仍然得到这个错误
require.js:108 Uncaught Error: Module name "fs" has not been loaded yet for context: _. Use require([])
https://requirejs.org/docs/errors.html#notloaded
at makeError (require.js:108)
at Object.s [as require] (require.js:947)
at requirejs (require.js:134)
at model.js:2
有人可以请教一下,应该怎么做才能使这项工作正常进行?我在这上面停留了超过 2 天,我对 node.js 和这个 'require' 还很陌生.. 但我知道这是 node.js.[=24= 的一个非常重要的部分]
所以我想澄清一些 advise/help 不使用捆绑器和 运行 直接来自节点服务器的 html 页面必须处理的内容这个..
只是为了让我清楚 'this' 的意思,我想做的就是获取一个文件夹名称列表,我想将其用作前面的导航菜单(li 项目)-结束..我在node.js上使用这个命令来获取数组..
fs.readdir('./data/')
我需要在我的 index.html 中包含这个数组,它与 node.js 上的 运行 相同 server/folder/application..
我假设如果 node.js 正在显示一个 html 文件(带有 app.get)我将能够以这种方式使用 fs
命令..我是吗错误的?如果是这样,我需要做什么才能使用 readdir
并让数组在前端显示为菜单?
您可能将 server.js
作为 ES6 模块,这是一件好事,因为我自己花了一个小时来设置它。
你可以做到 import { promises as fs } from "fs";
因为我喜欢我的 fs 调用 async
.
给人一种 python 的感觉。
“fs”模块是 NodeJS 中的内置模块,可让您使用文件系统。它在客户端不可用(假设人们可以访问您的网页并操纵您的文件系统!!)。
您要做的是 get a list of folder names that you want use as navigation menu (li items) on the front-end
。为此,您可以使用“fs”模块在服务器端获取文件夹名称列表,然后使用模板引擎渲染包含数据的 HTML 文件。