我正在使用Angular和Node,并将从GET请求向客户端控制器发送响应。
当我使用本机节点而不是Express.js时,用于发送响应的代码行似乎不起作用
这是我的角度控制器:
app.controller('testCtrl', function($scope, $http) {
$http.get('/test').then(function(response){
$scope = response.data;
});
});
这基本上路由到以下服务器脚本:
http.createServer(function onRequest(req, res){
if(req.method==='GET'){
var scope = 'this is the test scope';
res.json(scope); // TypeError: res.json is not a function
}
}).listen(port);
除非我使用快速服务器,否则res.json()会抛出错误
var app = express();
app.all('/*', function(req, res) {
if(req.method==='GET'){
var scope = 'this is the test scope';
res.json(scope); // OK!
}
}).listen(port);
我很确定json()函数带有节点。在使用本机节点服务器时,如何将响应发送回角度?
答案 0 :(得分:3)
res.json
不在HTTP response的API中。
标准方法是使用res.write()
(docs)然后res.end()
(docs)。但在您的情况下,由于您没有发送大量数据,因此您可以使用快捷方式,只需使用带有res.end()
参数的data
:)