gpt4 book ai didi

javascript - 如何从node.js返回信息到angular2

转载 作者:行者123 更新时间:2023-12-03 06:34:49 25 4
gpt4 key购买 nike

我将信息从 Angular 发送到 Node.js 文件。我想知道如何将信息从node.js返回到angular2。

index.js 中的代码

app.post('/', function(req,res){
var body = req.body;

*/ information received from angular2 file
(...)
*/ then return information back to angular2 file. **How to do this?**
};

有人可以帮我吗?谢谢。

最佳答案

首先你应该了解http请求的流程。

这是使用 Angular 内置工具 $resource 的示例。

以下是搜索功能的表示,我从 View 中的搜索文本框中将用户正在查找的内容作为参数发送:

// :search is the param
angular.module("MyApp")
.factory("Search", function($resource) {
return $resource("/api/search/:search", {}, {
query : {
method : "GET",
isArray : true
}
});
});

这是 Controller :

所有这些 Controller 所做的就是观察是否有用户键入输入文本进行搜索,并获取用户正在编写的内容并将其发送到后端,与上面的工厂/服务一起工作。此功能将数据发送到后端,以便获取查询,该查询是搜索结果的数组。

angular.module('MyApp')
.controller('AddCtrl', function($scope, $alert, Show, Search) {
$scope.showName = '';
$scope.data = {};
$scope.addShowToModel = '';

$scope.$watch('showName', function (tmpStr) {
if (!tmpStr || tmpStr.length == 0) return 0;
if (tmpStr === $scope.showName) {
Search.query({ 'search': $scope.showName })
.$promise.then(function(data) {
$scope.responseData = data;
})
.catch(function(response) {
console.log(response.error);
});
}
});
});

这是来自 Nodejs 的代码:

app.get('/api/search/:search', function(req, res, next) {
var searchParam = req.params.search
.toLowerCase()
.replace(/ /g, '_')
.replace(/[^\w-]+/g, '');

var parser = xml2js.Parser(); // npm module to convert xml to json
request.get('http://thetvdb.com/api/GetSeries.php?seriesname=' + searchParam, function (error, response, body) {

if (error) return next(error);
parser.parseString(body, function (err, result) {
if (result.Data.Series !== undefined) {
// this is how you send the data to the frontend
return res.status(200).send(result.Data.Series);
} else {
res.status(411).send({message: searchParam + " wasn't found"});
}
});

});
});

所以,简单地说:

app.post('/', function(req, res){
var body = req.body;
console.log(body);
return res.send(//whatever you need to send);
};

有时您不想向前端发送数据,而是希望发送状态代码来查看操作的进行情况:

app.post('/', function(req, res){
if(everythingIsFine) {
// send only status code
res.sendStatus(200);
}else {
// in case you want to send status + message
res.status(401).send('Invalid whatever thing');
}
};

希望对你有帮助!

编辑

在服务中,您可以使用$http代替$resource。这不是我回答的重点,只是告诉你。根据评论:

It would be more appropriate to use $http.get instead of $resource. $resource is intended for RESTful CRUD endpoints. A search endpoint does not fit that specification.

关于javascript - 如何从node.js返回信息到angular2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com