Javascript NodeJs:can';不要写文件

Javascript NodeJs:can';不要写文件,javascript,jquery,json,ajax,node.js,Javascript,Jquery,Json,Ajax,Node.js,我是node新手,为了练习,我想开发一个天气命令行应用程序,但我发现ajax请求有问题,我通常使用jquery的$.ajax,但它不起作用(我尝试要求jquery)。我用另一个模块解决了这个问题 现在的问题是:当我尝试在coords.json上打印json信息,然后用read json模块读取时,字符串中到处都是“\”&“\n”,我尝试用regex和fs模块替换它,但它没有重新写入文件。。。为什么? 以下是完整的代码: // index.js // modules const program =

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

现在的问题是:当我尝试在coords.json上打印json信息,然后用read json模块读取时,字符串中到处都是“\”&“\n”,我尝试用regex和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)
    });

});

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

这些\用于转义引号,以便它们不会结束字符串。它们不应该影响任何事情,实际上是必要的。你试过不用正则表达式吗?如果它实际上删除了“.

the \ are”来转义引号,这样就不会结束字符串,那么这可能会破坏一些东西。它们不应该影响任何事情,实际上是必要的。你试过不用正则表达式吗?如果它真的删除了.

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

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

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

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

您的代码对
coords.json
没有任何作用,您有一个异步问题。您的
fs.readFile()
是在
writeJson()
函数完成之前执行的。是的,我知道在这段代码中没有出现coords,test.json是同一个文件。您的代码对
coords.json
没有任何作用。您有一个异步问题。您的
fs.readFile()
是在您的
writeJson()
函数完成之前执行的。是的,我知道在此代码中没有出现coords,test.json是同一个文件