【问题标题】:AngularJS not sending data to Node ExpressAngularJS 不向 Node Express 发送数据
【发布时间】:2020-04-12 03:10:22
【问题描述】:

我正在使用 AngularJS,是的,我知道 AngularJS 已经过时,我应该使用 Angular 9,但这是为了学校作业,我真的别无选择。

我的 html 导航栏中有一个搜索栏,如下所示:

<ul id="nav-mobile" class="right hide-on-med-and-down">
    <li><input ng-model="crypto" type="text" placeholder="Search CryptoDash" style="color: white;"></li>
    <li>
        <a ng-click="search(crypto)" class="btn white waves-effect waves-light">Submit</a>
    </li>
</ul>

在我的 client.js 文件中,我存储了所有 AngularJS app.controller 处理,我有一个称为搜索的 $scope 函数。我将输入数据从搜索栏转换为 JSON blob,如果我在控制台记录它,我会得到 {name: "BTC"} 的示例。函数如下:

// Search the database
$scope.search = function(crypto){
    data = {name: crypto};
    $http.get('/search', JSON.stringify(data))
        .then(function (response) {
            console.log("STATUS:", response.status, response.text)
        });
};

现在跳到我的 server.js 文件,我有一个基本搜索功能的框架:

// Search route, makes a request to db
app.get('/search', function(req,res){
    console.log(req.body);
    res.end();
})

服务器端的控制台日志返回undefined 到我的控制台。我不明白为什么。如果我控制台日志只是req 我有一个巨大的日志转储数百行关于标头和套接字等等等,而req 是我提交的输入数据。我不知道它去了哪里,但有一件事是肯定的, /search 路由正在被前端击中,所以问题可能在于我如何构建我的 GET 请求。任何帮助,将不胜感激。谢谢。

【问题讨论】:

    标签: javascript node.js angularjs express http-headers


    【解决方案1】:

    您需要以params 发送数据,无需对其进行字符串化:

     $http
     .get('/search', { params: data })
     .then(function (response) {
          console.log("STATUS:", response.status, response.text)
     });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 2013-10-15
      相关资源
      最近更新 更多