Ich bin neu in Node, für die Praxis dachte ich, um eine Wetter Kommandozeilenanwendung zu entwickeln, aber ich fand ein Problem mit AJAX-Anfrage, ich verwende normalerweise $ .AJAX von JQuery aber es funktioniert nicht (ich habe versucht, jquery zu verlangen). Ich habe dieses Problem mit einem anderen Modul gelöst.NodeJs: kann keine Datei schreiben
Nun das Problem ist: wenn ich json Informationen über die coords.json und nächstes lesen Sie es mit schreib json Modul gibt es einige „\“ & „\ n“ überall in der Zeichenfolge versuchen zu drucken, Ich habe versucht, es mit Regex und FS Modul zu ersetzen, aber es nicht die Datei neu schreiben ... warum?
Hier wird der vollständige Code:
// 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)
});
});
und die Ausgabe in der Datei ist:
// 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"
, aber wenn ich es in der Konsole gedruckt, es ist normal ...
Ihr Code tut nichts mit 'coords.json' –
Sie haben eine Asynchron-Ausgabe. Ihre 'fs.readFile()' wird ausgeführt, bevor Ihre 'writeJson()' Funktion beendet ist. – jfriend00
Ja, ich weiß in diesem Code Coords nicht angezeigt, test.json ist die gleiche Datei – rawnly