2013-07-24 3 views
2

je le javascript suivant:javascript donnant des résultats inattendus

#!/usr/bin/env node 
var fs = require(’fs’); 
var outfile = "hello.txt"; 
var out = "Modify this script to write out something different.\n"; 
fs.writeFileSync(outfile, out); 
console.log("Script: " + __filename + "\nWrote: " + out + "To: " + outfile); 

sur l'exécution des commandes suivantes:

node test.js 
cat hello.txt 

i obtenir la sortie suivante:

[object Object] 

Qu'est-ce que je fais i faux?

+2

J'ai essayé votre code sous Windows, je ne l'ai pas voir n'importe quel problème. Je suis sur le noeud 0.10.x. – zsong

+0

J'utilise Ubuntu 12.04, version de noeud v0.10.5. le même code fonctionne très bien. – karthick

Répondre

0

L'obtention d'un objet renvoyé sous forme de chaîne. Vous allez avoir besoin savoir quelles sont les propriétés de l'objet a et les retourner, ou d'une boucle à travers l'objet et d'afficher les propriétés, ou le convertir en une chaîne ...

console.log(JSON.stringify(objToJson)); 
+1

Mais selon les [docs] (http://nodejs.org/api/fs.html#fs_fs_writefilesync_filename_data_options), il devrait fonctionner avec une chaîne de caractères. – bfavaretto

+0

Quel que soit "out" lorsque vous exécutez sur votre installation n'est pas une chaîne de caractères. Avez-vous essayé le code que vous avez fourni? Cela fonctionne magnifiquement pour moi. Quelle version du noeud avez-vous installée sur quel système? – ChrisCM

+0

@ChrisCM: J'utilise v0.10.13. J'ai ajouté console.log (out); Il imprime la chaîne. Mais pas dans le fichier. – nish

Questions connexes