Portanto, pode-se tentar buscar o seguinte objeto 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"
}
$
Existe uma maneira de produzir exatamente o mesmo corpo em uma resposta de um servidor usando o node ou express? Claramente, pode-se definir os cabeçalhos e indicar que o tipo de conteúdo da resposta será "application / json", mas existem diferentes maneiras de escrever / enviar o objeto. O que eu vi sendo comumente usado é usando um comando do formulário:
response.write(JSON.stringify(anObject));
No entanto, isso tem dois pontos em que se pode argumentar como se fossem "problemas":
- Estamos enviando uma string.
- Além disso, não há um novo caractere de linha no final.
Outra idéia é usar o comando:
response.send(anObject);
Parece estar enviando um objeto JSON com base na saída de curvatura semelhante ao primeiro exemplo acima. No entanto, não há um novo caractere de linha no final do corpo quando o enrolamento está sendo usado novamente em um terminal. Então, como alguém pode escrever algo assim com um novo caractere de linha acrescentado no final usando node ou node / express?
fonte
res.send
configurará automaticamente ocontent-type
JSON, se o item enviado for um objeto ou matriz.res.end()
em suahttp
(não expresso) exemplores.send()
não está funcionando. Corrija, se for um erro.res.end()
está funcionando corretamente. Obrigado btw.Desde o Express.js 3x, o objeto de resposta tem um método json () que define todos os cabeçalhos corretamente para você e retorna a resposta no formato JSON.
Exemplo:
fonte
Se você estiver tentando enviar um arquivo json, poderá usar fluxos
fonte
A
res.json()
função deve ser suficiente para a maioria dos casos.A
res.json()
função converte o parâmetro que você passa para JSON usandoJSON.stringify()
e define oContent-Type
cabeçalho paraapplication/json; charset=utf-8
que os clientes HTTP saibam analisar automaticamente a resposta.fonte
Se você estiver usando o Express, poderá usar o seguinte:
ou apenas isso
fonte
Você pode simplesmente prettificá-lo usando pipe e um dos muitos processadores. Seu aplicativo deve sempre responder com a menor carga possível.
https://github.com/ddopson/underscore-cli
fonte
Você pode ajudar: Faça uma função auxiliar para poder usá-la em qualquer lugar do aplicativo.
Aqui está minha rota de tópicos em que estou tentando obter todos os tópicos
Resposta que obtemos
fonte
Você pode usar um middleware para definir o Tipo de Conteúdo padrão e definir o Tipo de Conteúdo de maneira diferente para APIs específicas. Aqui está um exemplo:
fonte
Para o cabeçalho da metade da pergunta, vou gritar
res.type
aqui:é equivalente a
Fonte: documentos expressos :
fonte
Versão mais antiga do Express use
app.use(express.json())
oubodyParser.json()
leia mais sobre o middleware bodyParserNa versão mais recente do express, poderíamos simplesmente usar
res.json()
fonte
req.body
seja o objeto enviado como corpo da solicitação.