【发布时间】:2018-06-20 23:32:15
【问题描述】:
我正在学习一个教程,但我的服务器端代码中有一部分我并不真正理解。它向客户端的 Angular 服务文件发回响应,但我不明白为什么我需要 .json() 部分:
return res.status(500).json({
title: 'An error occurred',
error: err
});
有人可以向我解释一下吗?
服务器端路由文件
var express = require('express');
var router = express.Router();
var Message = require('../models/message');
router.get('/', function (req, res, next) {
// if we don't pass any arguments this means 'find all messages'
Message.find()
.exec(function(err, messages){
if (err) {
return res.status(500).json({
title: 'An error occurred',
error: err
});
}
res.status(200).json({
message:"'Success",
obj: messages
});
});
});
router.post('/', function (req,res,next){
var message = new Message({
content: req.body.content
});
message.save(function(err, result) {
if (err) {
return res.status(500).json({
title: 'An error occurred',
error: err
});
}
res.status(201).json({
message: 'Saved message',
// this object is what we'll receive in the front-end
// and what we'll convert using the response.json() method
obj: result
})
})
});
module.exports = router;
【问题讨论】:
-
您可以使用 express 发送不同类型的响应。
.json只是您可以通过回复发送的选项之一。它只是一个 JSON 对象。查看文档以获取回复expressjs.com/en/api.html#res -
Angular 通常使用 AJAX 与服务器通信,这意味着 Angular 和服务器基本上是在互相发短信。
.json()用于响应对象的文本表示,由 Angular 解析和处理。
标签: javascript json node.js angular