フォーマットされたjsonをExpressで送信しようとしています。
これが私のコードです:
var app = express();
app.get('/', function (req, res) {
users.find({}).toArray(function(err, results){
// I have try both
res.send(JSON.stringify(results, null, 4));
// OR
res.json(results);
});
});
ブラウザにjsonが表示されますが、文字列です。ブラウザで読めるように送信するにはどうすればよいですか?
Content-Typeを次のようにapplication/jsonに設定する必要があります
app.get('/', function (req, res) {
users.find({}).toArray(function(err, results){
res.header("Content-Type",'application/json');
res.send(JSON.stringify(results, null, 4));
});
});
「秘密」のプロパティを設定してみてくださいjson spaces
Nodeアプリ。
app.set('json spaces', 2)
上記のステートメントは、jsonコンテンツにインデントを生成します。
type('json')
を使用して、フォーマット用に_Content-Type
_およびJSON.stringify()
を設定します。
_var app = express();
app.get('/', (req, res) => {
users.find({}).toArray((err, results) => {
res.type('json').send(JSON.stringify(results, null, 2) + '\n');
});
});
_
これはあなたの問題を解決するはずです
var app = express();
app.set('json spaces', 4)
app.get('/', function (req, res) {
users.find({}).toArray(function(err, results){
res.json(JSON.parse(results));
});
});
多分あなたはJSON.parse(resp)
する必要があります