无法将数据写入 Node JS 中的文件

Not able to write data to a file in Node JS

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

Upload.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。它主要是一个整数值,但是当我单击提交时,它在文件中显示为 'undefined',即使它在控制台上显示为成功写入。有什么解决办法吗?

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

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

应该是:

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

您可以使用像 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,'/');

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

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>