Angular.js和Node.js – 通过控制器将inputvariables传递给server.js
现在刚刚学习了MEAN栈,我正在摆弄它,但我有点迷路。
我想实现的是利用一个外部的API来自动填充关于最初input的标签的input字段。
所以问题是,如何将foo
的值一直传递给server.js
以进行调用?
- 最终用户input一个
tag
并按下“获取数据” - 控制器将
tag
的值(在我的.ejs
文件中定义为ng-model="object.tag"
)传递给getData
路由 -
server.js
获取tag
并将其传递到外部API URL中进行调用 - 外部API做它的事情,为我返回一个漂亮和漂亮的
JSON
文件。 - 控制器自动填充尽可能多的表单字段,因为它可以从返回的JSON。
这里有一些代码位,所以你可以理解我有更多的结构:
–index.ejs–
<input type="text" ng-model="object.tag" /> <button ng-click="grabFooInfo()">Get Data</button>
–controller.js–
$scope.grabFooInfo = function(){ $http.get('/getData').success(function(res){ // Will do stuff here after data comes back }); };
–server.js–
app.get('/getData', function (req, res) { var options = { host: 'my.api.im.calling.com, path: '/v1/fooApi/' + // #Need foo here // headers: { accept: "application/json" }, method: 'GET' }; var req = https.request(options, function (response) { var fooData = ''; response.on('data', function (data) { fooData += data; }); response.on('end', function () { res.send(fooData); }); }); req.on('error', function (e) { console.log('problem with request: ' + e.message); }); req.end(); });
- 我正在做我的路由正确的节点是如何工作的?
- 如何使用Angular将input值传递给
server.js
此内部函数?
在客户端, HTML
<input type="text" ng-model="object.tag" /> <button ng-click="grabFooInfo(object)">Get Data</button>
JS
$scope.grabFooInfo = function(object){ $http({ url:'/getData', method: "GET", params: object }); });
在服务器端,
app.get('/getData', function (req, res) { var data = req.params.data; // it contains the value foo })
希望这对你的作品!