如何从res.json()
[控制器]中的$http.get()
[服务器]响应对象获取数据?
我觉得这与content-type
有关,因为我不想手动输入$scope.message = data.data.message;
我正在玩MEAN堆栈并尝试使用ng-bind
将Express中的数据显示为Angular。
Server.js
使用.get()
路由上的/api
来回复一个简单的对象res.json({ message : 'Hello World' })
,如下所示:
...
// Server frontend view
app.use(express.static(__dirname + '/public'));
// Configure bodyParser
app.use(bodyParser.urlencoded({'extended':'true'})); // parse application/x-www-form-urlencoded
app.use(bodyParser.json()); // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
// Specify backend route
router.get('/api', (req, res) => {
res.json({message : 'Hello World'});
});
...
<小时/> Angular控制器使用简单的
$http.get('/api/)
来检索数据,如下所示:
...
$http.get('/api')
.then(data => {
$scope.message = data;
console.log('Data: ' + data);
}, err => {
console.log('Error: ' + err);
});
...
<小时/> 当我测试
localhost:port/api
时,我看到{message:'Hello World'}
,
当我使用localhost:port
这是我的Angular视图时,我看到了这些数据:
{ “数据”:{ “消息”:“你好 世界 “},” 状态 “:200,” 配置 “:{” 方法 “:” GET”, “transformRequest”:[空], “transformResponse”:[空], “jsonpCallbackParam”: “回调”, “URL” : “/ API”, “标题”:{ “接受”:“应用/ JSON, text / plain, / “}},”statusText“:”OK“,”xhrStatus“:”完整“}
答案 0 :(得分:3)
data
参数实际上是response object,响应正文可用作data
属性。它应该是:
$http.get('/api')
.then(({ data }) => {
$scope.message = data;
console.log('Data: ' + data);
}, err => {
console.log('Error: ' + err);
});