【问题标题】:Not able to write data to a file in Node JS无法将数据写入 Node JS 中的文件
【发布时间】:2017-03-11 14:50:59
【问题描述】:

我想在 Node Js 中已创建的文件中写入文本。这是我所做的

上传.html

<form enctype ="multipart/form-data" action ="/file" method ="post">


    MAC Address:<br>
  <input type="text" name="macadd" id="macadd"><br>

  Percentage:<br>
  <input type="text" name="percent" id="percent"><br>



<input type="submit"  value='Submit' id="upload">
<br>

</form>

App.js

app.route('/file').post(function (req,res,next) {

        var macadd =req.body.macadd;
       //var percent =req.body.percent;
        var path ="C:\Proj\doc\data.txt";
        var data ="hello";

        fs.writeFile(path,macadd , function(error) {
            if (error) {
                console.error("write error:  " + error.message);
            } else {
                console.log("Successful Write to " + path);
            }
        });
    });

我想将 'macadd' 的值写入文件 data.txt。它主要是一个整数值,但是当我单击提交时,在文件中它显示为“未定义”,即使它在控制台上显示为成功写入。有什么解决办法吗?

【问题讨论】:

    标签: javascript node.js filesystems


    【解决方案1】:

    您需要更改指定路径的方式:

    var path ="C:\Proj\doc\data.txt";

    应该是:

    var path ="C:/Proj/doc/data.txt";

    【讨论】:

    • 我在 Windows 上做。是否还需要更改斜线?
    • 这取决于您是否希望能够在 Windows 以外的其他设备上运行。如果是这样,则使用路径规范化或解析之类的方法使其可移植。请参阅this link 了解更多信息
    【解决方案2】:

    您可以使用像 path-resolve 这样的节点实用程序来帮助您:

    路径解析:https://www.npmjs.com/package/path-resolve

    $ npm install path-resolve --save
    

    然后按如下方式使用:

    var resolve = require('path-resolve');
    var path    = resolve("C:\Proj\doc\data.txt").replace(/\\/g,'/');
    

    【讨论】:

    • 仍然显示为成功写入,但 data.txt 中没有任何内容
    • 太棒了!我正在尝试从 HTML 页面插入文本字段元素。它在 data.txt 中未定义。有什么解决办法吗?
    • @AmitNaik 我认为这是一个不同的问题。也许将当前问题标记为已解决并创建一个新问题。
    【解决方案3】:

    我只是在路径的文件夹之间添加了 2 个斜杠并添加了 path-resolve 包。像这样的:

    var path =resolve("C:\\Proj\\doc\\data.txt");

    为了将文本框的值放入文件中,我必须删除表单标签中的加密类型。

    <form action ="/file" method ="post">
    
    
        MAC Address:<br>
      <input type="text" name="macadd" id="macadd"><br>
    
      Percentage:<br>
      <input type="text" name="percent" id="percent"><br>
    
    
    
    <input type="submit"  value='Submit' id="upload">
    <br>
    
    </form>
    

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-13
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多