Json 반환되기를 사용하여 적절한 방법으로 노드입니다 또는 익스프레스

따라서 다음 JSON 객체에는 페치할 시도할 수 있습니다.

$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=ISO-8859-1
Date: Wed, 30 Oct 2013 22:19:10 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked

{
   "anotherKey": "anotherValue",
   "key": "value"
}
$

똑같은 바디입니다 생산할 수 있는 방법이 있는 서버 응답을 통해 노드입니다 또는 익스플레스? 그러나 분명한 것은, 콘텐트 유형 중 하나를 나타내는 헤더도 설정할 수 있습니다,, 그런데 application/json&quot &quot 대응이 될 수 있는 방법을 쓰기 / 전송하십시오 객체에는 다릅니다. 나는 자주 사용되는 명령을 사용하여 볼 수 있는 형태의:

response.write(JSON.stringify(anObject));

그러나 이 두 개의 지점이 한 것처럼, problems&quot &quot 수도 있을 것,:

  • 우리는 문자열으로 보내고 있다.
  • 귀의하매 귀의하매 줄 바꿈 문자가 없습니다.

다른 명령을 사용할 수 있다는.

response.send(anObject);

이 결과를 기준으로 객체를 JSON 보내는 것으로 컬 비슷한 사례 1 위. 그러나 종료 후, 새 줄 문자 (curl) 이 또다시 바디입니다 없을 때 기술입니까 에서 사용 가능하다. 그래서, 어떻게 이 같은 일이 실제로 기술하십시오 한 줄 문자 사용) 가 새로운 각오로 귀의하매 노드입니다 또는 노드입니다 / 익스플레스?

해결책

그 응답이 문자열으로 전송하십시오 응답, 일부 어색한 이유 역시 스케쳐내 프레티피들 제슨.스트린그리피 (아노비치, null, 3) ',' 같은 항목을 사용할 수 있습니다

39 의 it& 콘텐트 유형 '에' 설정 ',' 응용 프로그램 / json 헤더입니다 합니다 너무.

var http = require('http');

var app = http.createServer(function(req,res){
    res.setHeader('Content-Type', 'application/json');
    res.end(JSON.stringify({ a: 1 }));
});
app.listen(3000);

// > {"a":1}

프레티피들:

var http = require('http');

var app = http.createServer(function(req,res){
    res.setHeader('Content-Type', 'application/json');
    res.end(JSON.stringify({ a: 1 }, null, 3));
});
app.listen(3000);

// >  {
// >     "a": 1
// >  }

39, i& 당근이지를 m not just do it with a 개행 문자 확장하지만 종료할 수 있는지, 왜 '제슨.스트린그리피 (.) # 39, & # 39, '+ \n& 달성하기 위해.

익스프레스

변경 옵션 대신 에서 익스플레스 이를 확인할 수 있습니다.

&gt. # 39, & # 39, json replacer& ',' 대체 comment 콜백하는 nulll 기본적으로 JSON

&gt. # 39, & # 39 ',' spaces& json 포맷은 기본적으로 JSON 응답을 공간이 개발, 생산 2 0

실제로 권장됨 40_ _not 맞추기 위해

app.set('json spaces', 40);

그럼 그냥 일부 json 으로 대응할 수 있다.

res.json({ a: 1 });

'공백' & # 39, & # 39, json it& ll list. # 39. 구성내역 값 싸게 치장하다 거잖나.

해설 (14)

Json () 는 3 세트 이후 엑스프레스트제스 응답 객체에는 맞게 JSON 응답을 같이 있는 모든 방법을 헤더도 너회들의 되돌려줍니다 형식.

예:

res.json({"foo": "bar"});
해설 (2)

Json 스트리밍합니다 할 경우 보내려면 파일을 사용할 수 있습니다.

var usersFilePath = path.join(__dirname, 'users.min.json');

apiRouter.get('/users', function(req, res){
    var readable = fs.createReadStream(usersFilePath);
    readable.pipe(res);
});
해설 (1)

39 이 방법을 사용할 경우, re u& 와-u 사용할 수 있습니다.

res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify({key:"value"}));

이 스피커에만

res.json({key:"value"});
해설 (0)

이 파이프 하나가 됩니다 값 싸게 치장하다 사용하여 많은 프로세서입니다. 네 항상 app 로 작은 로드형 응답 할 수 있다.

$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue | underscore print

https://github.com/ddopson/underscore-cli

해설 (0)

최근 콘텐트 유형, 컨텐츠 유형에 대해 다르게 설정하는 데 사용할 수 있는 기본 설정, 특정 api. 예를 들어보겠습니다.

const express = require('express');
const app = express();

const port = process.env.PORT || 3000;

const server = app.listen(port);

server.timeout = 1000 * 60 * 10; // 10 minutes

// Use middleware to set the default Content-Type
app.use(function (req, res, next) {
    res.header('Content-Type', 'application/json');
    next();
});

app.get('/api/endpoint1', (req, res) => {
    res.send(JSON.stringify({value: 1}));
})

app.get('/api/endpoint2', (req, res) => {
    // Set Content-Type differently for this particular API
    res.set({'Content-Type': 'application/xml'});
    res.send(`
        Tove
        Jani
        Reminder
        Don't forget me this weekend!
        `);
})
해설 (0)

이 ['레이제슨 ()' 기능을] [1] 의 경우 대부분 충분합니다.

"' 마카베지제 (& # 39 / # 39 (필요, re) = >;; 레이제슨 ({대답: 42tb (})); "'

레이제슨 변환할 수 있는 ' ()' 기능을 사용하여 전달했는지 매개변수입니다 JSON '제슨.스트린그리피 ()'세트 '는 콘텐트 유형' 헤더입니다 을 '응용 프로그램 / json. 그래서 알고 문자세트 = utf-8 HTTP 응답 클라이언트뿐 자동 구문 분석.

[1]: https://expressjs.com/en/api.html # 레이제슨

해설 (0)

이전 버전의 익스플레스 사용 '아프리우스 (엑스프레스.j슨 ())' 또는 '브로디파서.j슨 ()' 대해 자세한 내용을 브로디파서 미들웨어

우리가 할 수 있는 최신 버전의 익스플레스 레이제슨 사용하여 간단히 ' ()'

const express = require('express'),
    port = process.env.port || 3000,
    app = express()

app.get('/', (req, res) => res.json({key: "value"}))

app.listen(port, () => console.log(`Server start at ${port}`))
해설 (1)

39 m gonna give a 의 질문에 대한 헤더입니다 반단면 I&, '소리 질러 아웃하려면 레스티페' here.

res.type('json')

같습니다

res.setHeader('Content-Type', 'application/json')

출처: [익스플레스 docs] (https://expressjs.com/en/4x/api.html # 레스티페):

&gt. 콘텐트 유형 HTTP 헤더와 MIME 유형을 지정안됨 검은선을 미메트루쿠프 () 는 지정된 유형:. "/" 문자를 입력할 수 있는 경우, 해당 유형 map_layer 컨텐츠 유형에 설정합니다.

해설 (0)