gpt4 book ai didi

javascript - NodeJs : can't write a file

转载 作者:行者123 更新时间:2023-12-02 13:53:50 25 4
gpt4 key购买 nike

我是 Node 新手,为了练习,我想开发一个天气命令行应用程序,但我发现ajax请求有问题,我通常使用jquery的$.ajax,但它不起作用,(我已尝试要求 jquery )。我已经用另一个模块解决了这个问题。

现在的问题是:当我尝试在 coords.json 上打印 json 信息,然后使用 read-json 模块读取它时,有一些“\”和字符串中到处都是“\n”,我尝试用正则表达式和 fs 模块替换它,但它不会重写文件......为什么?

完整代码:

// index.js
// modules
const program = require('commander');
const clear = require('clear');
const chalk = require('chalk');
const request = require('ajax-request');
const fs = require('fs');

const json = require('read-data').json;
const writeJson = require('write-json');

// Forecast.io Key
const key = "*************";
const freegeoip = "http://freegeoip.net/json/";

let latitude = 0,
longitude = 0 ;

// forecast.io api url
const url = `https://api.darksky.net/forecast/${key}/${latitude},${longitude}`;

// initialize myData with the freegeoip datas
let myData = request({
url: 'http://freegeoip.net/json/',
method: 'GET',
data: {
format: 'json'
},
}, function(err, res, body) {
writeJson('test.json', body, function(err) {
if (err) console.log(err);
});
});

fs.readFile('test.json', 'utf8', function (err,data) {
let result = data.replace(/[\\~#%&*<>?|\-]/g, '');
fs.writeFile('test.json', result, 'utf8', function (err) {
if (err) return console.log(err);
// if i do this is normal json
// console.log(result)
});

});

文件中的输出是:

// coords.json

"{\"ip\":\"**.**.**.**\",\"country_code\":\"IT\",\"country_name\":\"Italy\",\"region_code\":\"62\",\"region_name\":\"Latium\",\"city\":\"Rome\",\"zip_code\":\"00119\",\"time_zone\":\"Europe/Rome\",\"latitude\":**.*,\"longitude\":**.**\"metro_code\":0}\n"

但是如果我在控制台中打印它,这是正常的......

最佳答案

我强烈建议您使用 JSON.parse。它将解析您的 json 并将其放入您可以使用的变量中:

fs.readFile('test.json', 'utf8', function (err,data) {  
data = JSON.parse(data); // Yay you can use anything from the JSON
}

关于javascript - NodeJs : can't write a file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com