运行.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方法并创建一个目录。但我陷入了困境。 或者有没有办法直接在浏览器中运行?
答案 0 :(得分:4)
编辑:重读原始帖子, 可能实际上在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
从客户端向服务器(而不是fs
)发出http请求,然后在后端处理这些内容。这可以使用像Apache和php这样的传统Web堆栈轻松完成,或者如果您真的想使用fs
,请从Node.js运行API并使用XHR/ajax
将客户端连接到它。实现像Sails.js这样的MVC堆栈。
答案 1 :(得分:3)
您无法在浏览器中使用node.js脚本。只能用node.js运行它。
答案 2 :(得分:2)
server.js
应该在服务器端运行(安装了nodejs)。