Javascript 如何在HTML中使用fs.writeFile(使用node.JS)?

Javascript 如何在HTML中使用fs.writeFile(使用node.JS)?,javascript,node.js,html,fs,Javascript,Node.js,Html,Fs,所以我已经在这个话题上搜索了几个小时,但仍然没有找到任何真正的方法来实现我在这里要做的事情 简单地说,我只想通过使用HTML中的按钮将一些文本写入文本文件。这就是我所拥有的: <!DOCTYPE html> <html> <head> <title>TEST</title> </head> <body> <button onclick="write_text()">WRITE FILE<

所以我已经在这个话题上搜索了几个小时,但仍然没有找到任何真正的方法来实现我在这里要做的事情

简单地说,我只想通过使用HTML中的按钮将一些文本写入文本文件。这就是我所拥有的:

<!DOCTYPE html>
<html>
<head>
    <title>TEST</title>
</head>
<body>

<button onclick="write_text()">WRITE FILE</button>

<script>
    function write_text(){
        var fs = require('fs');

        fs.writeFile("test.txt", "okay this is epic", function(err){
            if (err) return console.log(err);
            console.log("Nice");
        });
    };
</script>

</body>
</html>

测验
写入文件
函数write_text(){
var fs=需要('fs');
writeFile(“test.txt”,“好的,这是史诗”,函数(err){
if(err)返回console.log(err);
console.log(“Nice”);
});
};
我不确定为什么这不起作用,我需要为按钮引用的函数创建一个单独的.js文件吗

任何帮助都将不胜感激, 谢谢


编辑:我正在尝试将文件保存到我的GoDaddy服务器,以便以后可以访问它,而不仅仅是下载文件。在本地测试时,它应该在我的html文档的目录中创建一个文件。

您不能以您想要的方式(不是服务器端,没有节点,然后在这个上下文中没有
fs
),但是创建blob有一个解决方法:

function downloadURL(url, name) {
  var link = document.createElement("a");
  link.download = name;
  link.href = url;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  delete link;
}

function downloadFile() {
  var data = "okay this is epic";
  var blob = new Blob([data], {type: 'text/txt'});
  var url  = window.URL.createObjectURL(blob);
  downloadURL(url, "test.txt");
}

在按钮中调用
downloadFile()

如前所述,您做得不对。 非常重要的一点是,node.js是一个运行时环境,简单地将包含js代码的HTML文件放在GoDaddy上并不会使其成为“服务器端”,因为代码在浏览器上运行,而不是在服务器上运行

您真正想做的是按照前面所述使用Blob,或者做类似的事情(如果您想使用node.js):

var express=require('express'))
var app=express()
app.post(“/”,函数(请求,res){
writeToFilexx(/*此处您可能希望使用正文解析器传递数据*/)
})
/* 
在这里,您将启动服务器
*/
请注意,writeToFilexx是一个必须使用fs实现的函数。 在客户端,您必须向服务器发送一个包含要写入文件的数据的请求。 事情是这样的: 1.客户端将数据发送到服务器。 2.服务器获取数据(处理请求)。 3.服务器处理并存储数据


正如您可能猜到的,文件将保存在服务器上,而不是客户端的PC上。

HTML在浏览器中运行。Node.js在服务器上运行。您不能。节点是服务器端,HTML客户端。确保你理解这个概念。我明白了。。。但问题是,我正试图弄清楚这将如何保存到托管我的网站的服务器的文件目录中,以便我以后可以访问它。明白了。嗯,您确实需要理解这些概念,主要是客户机和服务器如何通信以及它们的角色。在这里不告诉你,因为这是一个漫长的历史。。。但为了简化,客户机将向服务器发出请求(例如http)为您保存文件,然后在那里使用
fs
var express = require('express')
var app = express()

app.post('/<your_path>', function (req, res) {
  writeToFilexx(/*Here you may want to pass data using body parser*/)
})
/* 

Here you will start the server 

*/