当我运行我的 .html 文件时,我在浏览器中收到此错误
Uncaught ReferenceError: require is not defined
我的 File_system.html 是:
<!DOCTYPE html>
<html>
<head>
<title>window.requestFileSystem problem</title>
<script type="text/javascript" src="server.js"></script>
<script>
function onInitFs(fs) {
console.log(fs);
console.log(fs.getDirectory());
}
function errorHandler(e) {
var msg = '';
console.log(e);
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
console.log('Error: ' + msg);
}
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(window.PERSISTENT, 1024*1024,onInitFs,errorHandler);
</script>
</head>
<body>
</body>
</html>
我的 server.js 文件是:
var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('File_system.html');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(index);
}).listen(8080);
这有什么问题吗?请帮忙
我应该能够在控制台中检索所有 fs 方法并使用 tat 创建一个目录。但我被困在这个。 或者有什么办法可以直接在浏览器中运行?
最佳答案
编辑:重新阅读您的原始帖子,您可能实际上是在 Node 环境中运行此 Node.js 脚本,尝试使用 fs
加载您的 .html 文件。如果是这种情况,您将在 您的 .html 文件中调用您的 Node server.js 脚本,如下所示:
<script type="text/javascript" src="server.js"></script>
只需删除此行,您就不会再收到所看到的错误。
如前所述,您正在尝试实现 Node.js客户端脚本中的代码。理论上这 can be done ,但不推荐,Node.js 根本不是为此目的而设计的(它是一个服务器!)
你应该使用 XHR/ajax
从您的客户端向服务器发出 http 请求(不是 fs
),然后在后端处理这些事情。这可以使用 Apache 和 php 等传统 Web 堆栈轻松完成,或者如果您真的想使用 fs
,请从 Node.js 运行 API 并使用 XHR/ajax
将您的客户端连接到它。 ,或实现一个 MVC 堆栈,如 Sails.js .
关于javascript - "require"未定义错误 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20605118/