따라서 다음 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" " 대응이 될 수 있는 방법을 쓰기 / 전송하십시오 객체에는 다릅니다. 나는 자주 사용되는 명령을 사용하여 볼 수 있는 형태의:
response.write(JSON.stringify(anObject));
그러나 이 두 개의 지점이 한 것처럼, problems" " 수도 있을 것,:
다른 명령을 사용할 수 있다는.
response.send(anObject);
이 결과를 기준으로 객체를 JSON 보내는 것으로 컬 비슷한 사례 1 위. 그러나 종료 후, 새 줄 문자 (curl) 이 또다시 바디입니다 없을 때 기술입니까 에서 사용 가능하다. 그래서, 어떻게 이 같은 일이 실제로 기술하십시오 한 줄 문자 사용) 가 새로운 각오로 귀의하매 노드입니다 또는 노드입니다 / 익스플레스?
그 응답이 문자열으로 전송하십시오 응답, 일부 어색한 이유 역시 스케쳐내 프레티피들 제슨.스트린그리피 (아노비치, null, 3) ',' 같은 항목을 사용할 수 있습니다
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, & # 39, json replacer& ',' 대체 comment 콜백하는 nulll 기본적으로 JSON
>. # 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. 구성내역 값 싸게 치장하다 거잖나.
최근 콘텐트 유형, 컨텐츠 유형에 대해 다르게 설정하는 데 사용할 수 있는 기본 설정, 특정 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(`<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>`);
})
이 ['레이제슨 ()' 기능을] [1] 의 경우 대부분 충분합니다.
"' 마카베지제 (& # 39 / # 39 (필요, re) = >;; 레이제슨 ({대답: 42tb (})); "'
레이제슨 변환할 수 있는 ' ()' 기능을 사용하여 전달했는지 매개변수입니다 JSON '제슨.스트린그리피 ()' 와 세트 '는 콘텐트 유형' 헤더입니다 을 '응용 프로그램 / json. 그래서 알고 문자세트 = utf-8 HTTP 응답 클라이언트뿐 자동 구문 분석.
[1]: https://expressjs.com/en/api.html # 레이제슨
이전 버전의 익스플레스 사용 '아프리우스 (엑스프레스.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}`))
res.type('json')
같습니다
res.setHeader('Content-Type', 'application/json')
출처: [익스플레스 docs] (https://expressjs.com/en/4x/api.html # 레스티페):
>. 콘텐트 유형 HTTP 헤더와 MIME 유형을 지정안됨 검은선을 미메트루쿠프 () 는 지정된 유형:. "/" 문자를 입력할 수 있는 경우, 해당 유형 map_layer 컨텐츠 유형에 설정합니다.