Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js和Node.js-通过控制器将输入变量传递给server.js_Javascript_Angularjs_Node.js_Routes_Mean Stack - Fatal编程技术网

Javascript Angular.js和Node.js-通过控制器将输入变量传递给server.js

Javascript Angular.js和Node.js-通过控制器将输入变量传递给server.js,javascript,angularjs,node.js,routes,mean-stack,Javascript,Angularjs,Node.js,Routes,Mean Stack,现在我只是在学习平均堆栈,我正在摆弄它,但我有点迷路了 我试图实现的是利用外部API自动填充最初键入的标记的输入字段 所以问题是,如何将foo的值一直传递到调用的server.js 最终用户输入一个标签并按下“获取数据” 控制器将标记的值(在my.ejs文件中定义为ng model=“object.tag”)传递给getData路由 server.js获取tag并将其传递到外部API URL中以调用 外部API完成了它的工作,为我返回了一个漂亮的JSON文件 控制器从返回的JSON自动填充尽可

现在我只是在学习平均堆栈,我正在摆弄它,但我有点迷路了

我试图实现的是利用外部API自动填充最初键入的标记的输入字段

所以问题是,如何将
foo
的值一直传递到调用的
server.js

  • 最终用户输入一个
    标签
    并按下“获取数据”
  • 控制器将
    标记的值
    (在my
    .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>
    
    $scope.grabFooInfo = function(){
        $http.get('/getData').success(function(res){
            // Will do stuff here after data comes back
        });
    };
    
    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();
    });
    
    --server.js--

    <input type="text" ng-model="object.tag" />
    <button ng-click="grabFooInfo()">Get Data</button>
    
    $scope.grabFooInfo = function(){
        $http.get('/getData').success(function(res){
            // Will do stuff here after data comes back
        });
    };
    
    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();
    });
    
    • 对于节点的工作方式,我的路由是否正确?
    • 如何在
      server.js
      中使用Angular将输入值传递给该内部函数?
    在客户端, HTML

    <input type="text" ng-model="object.tag" />
    <button ng-click="grabFooInfo(object)">Get Data</button>
    
    在服务器端

    app.get('/getData', function (req, res) {
       var data = req.params.data; // it contains the value foo
    })
    

    希望这对你有用

    当响应返回时,他需要调用
    $scope.$apply
    ,以便在controllerWell上更新数据,它不会是foo,我正在使用它作为示例。这是一个输入字段。因此,有人会键入“#992823”(或外部API的其他可接受标记)。我需要传递表单中的值。@NicholasHazel我将其设置为通用!!这解决了您的问题??嗯,在我的服务器控制台中,当I console.log声明后,
    数据的值
    仍然没有定义。似乎没有在服务器控制台或浏览器控制台中获取
    ng model=“object.tag”
    的输入值??