当前位置: 首页 > 知识库问答 >
问题:

将API响应写入.txt文件

郎刚捷
2023-03-14

我正在使用一个nodejs应用程序。我已经开发了一个工作良好的虚拟API。这是我在命中get请求endpoint后收到的响应。

[
    {
        "id": 1,
        "name": "course1"
    },
    {
        "id": 2,
        "name": "course2"
    },
    {
        "id": 3,
        "name": "course3"
    }
]

我的主要目标是能够将此响应保存到本地文件中。然而,我的代码返回的东西与我预期的相去甚远。它返回了大量的“代码”,但摘录如下:

function json (options) {
  var opts = options || {}

  var limit = typeof opts.limit !== 'number'
    ? bytes.parse(opts.limit || '100kb')
    : opts.limit
  var inflate = opts.inflate !== false
  var reviver = opts.reviver
  var strict = opts.strict !== false
  var type = opts.type || 'application/json'
  var verify = opts.verify || false

另一方面,我的代码看起来是这样的:

const courses = [
    {id:1, name:'course1'},
    {id:2, name:'course2'},
    {id:3, name:'course3'},
];

app.get('/', (req, res) => {
    res.send('Hello World');
});

app.get('/api/courses', (req, res) => {
    res.send(courses)

    var write = fs.writeFile("Api.txt", json.toString(courses), (err) => {

        if (err) throw err 
        console.log(write)
    })
});

你能发现我的错误吗?或者有别的办法吗?请分享。谢谢

共有1个答案

沈伟
2023-03-14

json.toString应为json.stringify。将JavaScript代码保存到文件中的原因是:在代码的某个地方定义了json函数,您将对该函数调用.toString()

由于函数是JS中的对象,您无意中告诉JS要获得“函数对象”的字符串表示。默认情况下,function.prototype.ToString实现为返回源代码。

 类似资料:
  • 本质上,我想在使用BufferedReader向idex指定的元素减去1之后覆盖txt文件“quantity.txt”。但是,结果会变成一个空白的txt文件或胡言乱语(带有br.flush();)。我试着检查了ArrayList,结果是正常工作的。它只是不能打印到txt文件。有没有可能的方法/替代方法可以做到这一点?还是我在代码中的某个地方犯了一个错误,导致它输出了一个空白或杂乱无章的txt文件?

  • 问题内容: 如何将一小段文字写入文件?我已经使用Google搜索了3-4多个小时,但无法找到具体方法。 有很多论据,我不知道该如何使用。 当您只想在文件中写一个名字和几个数字时,最容易使用的功能是什么? 编辑:添加了一段我的代码。 问题答案:

  • 问题内容: 我已经在该站点附近搜索了答案,但找不到任何答案。 我有一个表格,我想将输入内容写入txt文件。为了简单起见,我只写了一个简单的表单和脚本,但是它一直让我空白。这就是我得到的 这是我的PHP文件 问题答案: 您的表格应如下所示: 和PHP 我写信是因为这样我才知道确切的位置。使用写入当前工作目录中的文件,在您的示例中我一无所知。 为您打开,写入和关闭文件。不要惹它。 进一步阅读: fil

  • 问题内容: 我想创建一个简单的日志系统,该日志系统使用Node.js将前一行之前的一行打印到txt文件中,但是我不知道Node.js中的文件系统如何工作。有人可以解释吗? 问题答案: 将数据插入文本文件的中间不是一件容易的事。如果可能,应将其附加到文件末尾。 将数据追加到一些文本文件的最简单方法是使用来自模块的内置函数: 但是,如果您想多次将数据写入日志文件,那么最好改用function: 每次您

  • 我试图从查询字符串中获取一个变量,并将其写入文本文件。我试过这样做: 我得到以下错误: 警告:fopen(etlLOG.txt)[function.fopen]:无法打开流:在E:\Users\george\listener中的权限被拒绝。php第8行 警告:f写():在第9行的E:\用户\乔治\listener.php中,提供的参数不是有效的流资源 警告:fclose():提供的参数不是E:\U

  • 我在做一个非常简单的变量保存器。我希望varset.bat将变量“var”保存到var.txt,并希望varview.bat将其读回给我。var.txt只读“”不管我放了什么。