我正在使用一个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
被实现为返回源代码。