用Javascript将变量写入文件



这可能是一个副本。。但从我看到的答案来看,我并没有得到我想要的东西。。

我只想使用Javascript将一个特定的变量保存到本地文件中。我知道如何阅读文件。

我写了这个代码。。

<script>
var fs = require('fs');
fs.writeFile('http://localhost/online/hello.txt', 'Hello Node', function (err) {
  if (err) throw err;
  else
  {
  console.log('It's saved!');
  }
});
</script>

这里的错误是什么。。还是有一种简单直接的方法。。??

您似乎正在尝试从浏览器调用node-js代码。尽管javascript既可以在浏览器中运行,也可以在服务器(node-js)上运行,但它们是独立的系统。

你可以做的另一件事是谷歌"HTML保存文件示例",看看这通常是如何实现的-通过为用户打开保存对话框,获得他/她的权限,等等(否则任何网站都可以将任何文件写入你的计算机…)。

您正在为客户端应用程序编写NodeJS代码。您必须了解浏览器上的javascript和NodeJS平台上的javascript之间的区别。

Javascript是一种类似于CJavaPython 的语言

V8是运行javascript应用程序的javascript引擎。它类似于Java的JRE

Browser(仅Chrome)使用V8引擎运行javascript应用程序。其他浏览器使用不同的javascript引擎。五年前,javascript只能在browser上工作的可能性只有一种。不能将javascript用于CJava 等应用程序编程

NodeJS是一个使用V8使开发人员能够像CJava程序一样编写javascript应用程序的平台。NodeJS还内置了一些用于访问文件系统的库,网络以及更多的实用程序。NodeJS中的一个内部库是fs。它只适用于NodeJS应用程序,不适用于浏览器应用程序。

这可以非常简单地使用jrpc oo来完成。jrpc-o使用JRPC2协议链接浏览器和nodejs。jrpcoo通过jrpc抽象类,以便任何一方(nodejs或浏览器)都可以相互调用。

我在这里设置了一个示例repo。使用writeToFile栏。我将在这里分解出重要的部分。

首先在nodejs中,我们编写了一个类,该类具有将输入参数写入文件的方法。该方法看起来是这样的(来自文件TestClass.js):

const fs = require('fs');
class TestClass {
  writeToFile(arg){
    fs.writeFileSync('/tmp/browser.json',JSON.stringify(arg));
  }
}

在浏览器中,我们从jrpc oo类JRPCClient继承并调用服务器类TestClass和方法writeToFile,如下所示(来自src/LitJRPC.js文件):

import {JRPCClient} from '@flatmax/jrpc-oo/jrpc-client.js';
export class LitJRPC extends JRPCClient {
  writeObjToFile(){
    // create the argument we want to save to file
    let dat={name:'var',value:10};
    // Ask the server to execute TestClass.writeToFile with args dat
    this.server['TestClass.writeToFile'](dat);
  }
}

最后,我们运行nodejs应用程序和web开发服务器,查看浏览器控制台和nodejs控制台,看看发生了什么。您将看到浏览器变量dat保存到文件/tmp/browser.json 中

由于我们使用的是jrpc的安全websocket,您需要生成证书并使用浏览器清除证书,然后应用程序才能工作。如果你不想担心安全性,那么就不要使用安全的websocket。有关设置和用法的更多信息,请阅读参考回购中的自述文件。

相关内容

  • 没有找到相关文章

最新更新