2017-02-09 1 views
1

노드를 사용하여 JS 객체 (예 : var obj = {a: 1, b: 2})를 가져 와서 해당 객체를 포함하는 파일을 만드는 방법은 무엇입니까?노드의 파일에 javascript 객체 작성

예를 들어

, 다음 작품 :

var fs = require('fs') 

fs.writeFile('./temp.js', 'var obj = {a: 1, b: 2}', function(err) { 
    if(err) console.log(err) 
    // creates a file containing: var obj = {a: 1, b: 2} 
}) 

그러나이 작동하지 않습니다

var obj = {a: 1, b: 2} 

fs.writeFile('./temp.js', obj, function(err) { 
    if(err) console.log(err) 
    // creates a file containing: [object Object] 
}) 

업데이트 : JSON.stringify()는 JSON 객체를 생성 (즉 {"a":1,"b":2}을)이 아닌 자바 스크립트 개체 (예 : {a:1,b:2})

+3

'JSON.stringify (object) ' –

+1

가능한 복제본 [객체를 Node.js 파일에 쓰기] (http://stackoverflow.com/questions/21976567/write-objects-into-file-with-node-js) –

+0

객체를 문자열 화하는 방법을 검색하십시오! – Pbd

답변

3

감사 스테판 Bijzitter link

내 문제는과 같이 해결할 수 있습니다 var obj = { a: 1, b: 2 }

:

var fs = require('fs') 
var util = require('util') 
var obj = {a: 1, b: 2} 

fs.writeFileSync('./temp.js', 'var obj = ' + util.inspect(obj) , 'utf-8') 

는이 포함 된 파일을 작성합니다

2

stringify y 우리의 목표 :

var obj = {a: 1, b: 2} 

fs.writeFile('./temp.js', JSON.stringify(obj), function(err) { 
    if(err) console.log(err) 
}) 
1

그 이유는 writeFile이 필요합니다.

https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback

그것은 데이터가 문자열이기 때문에

<String> | <Buffer> | <Uint8Array> 그래서 첫 번째 예제는 작동되고 싶어.

두 번째 작업을하기 위해서는 JSON.stringify(obj)을 사용하십시오. 이 도움이

fs.writeFile('file.txt', JSON.stringify(obj), callback) 

희망처럼

.

0

사용 JSON.stringify()에 대한

var obj = {a: 1, b: 2} 

fs.writeFile('./temp.js', JSON.stringify(obj), function(err) { 
    if(err) console.log(err) 
    // creates a file containing: [object Object] 
})