Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将API响应写入.txt文件_Node.js - Fatal编程技术网

Node.js 将API响应写入.txt文件

Node.js 将API响应写入.txt文件,node.js,Node.js,我正在使用nodejs应用程序。我开发了一个工作良好的虚拟API。 这是我在命中get请求端点后收到的响应 [ { "id": 1, "name": "course1" }, { "id": 2, "name": "course2" }, { "id

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

[
    {
        "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)
    })
});

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

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


因为函数是JS中的对象,所以您无意中告诉JS获取“函数对象”的字符串表示形式。默认情况下,
Function.prototype.toString
实现为返回源代码。

您想要什么?我同意。我改了,效果很好。谢谢你,罗伯特。