【问题标题】:express node.js making a get request to another server from node routeexpress node.js 从节点路由向另一台服务器发出 get 请求
【发布时间】:2015-08-30 23:41:11
【问题描述】:

因此客户端使用索引页面上的按钮发出获取请求。这会将一些信息发送到已设置如下的路由:

app.js

var route = require('./routes/index');
var button = require('./routes/button');
app.use('/', index);
app.use('/button', button);

只要有人按下按钮,请求就会从客户端目录发送到节点框架。如果请求被发送到 'localhost:port/button',那么上面提到的 button.js 文件就会接收到请求。所以在 button.js 文件中我们有如下内容:

var express = require('express');
var router = express.Router();
var someData = '';

router.get('/', function (req, res, next) {
    //make a get request here such that someData
    //receives whatever the request returns from another
    //set up framework(i.e. Spring...)
    someData = getRequest('some other URL');
    res.send(someData);
};
module.exports = router;

这里的问题是路由器获取请求中的 getRequest('some other URL') 从未收到任何信息。

另外(作为旁注),我似乎无法在 express API 中找到我们为什么拥有

router.get('/')...

而不是

router.get('/button')...

访问按钮页面并向其发出请求。

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript node.js express routes request


    【解决方案1】:

    您想向其他地方运行的其他 REST API 发出请求,对吗? 你可以使用node-rest-client

    【讨论】:

    • 它不是其他的REST API,它是一个有状态的API。我认为我所说的可能行不通,因为我将节点用作 REST API,因此在从其他 API 获取数据时它无法保持客户端调用的状态
    【解决方案2】:

    我猜你混淆了什么是 server codeclient code 或者我错过了什么?

    我将尝试解释它的工作方式:

    服务器代码:

    var express = require('express');
    var router = express.Router();
    var someData = '';
    
    router.get('/yearStations/:id', function (req, res, next) {
        //make a get request here such that someData
        //receives whatever -the id parameter- the request returns from another
        //This is express.js
        someData = getYourDataFromDataBase(req.params.id);
        res.send(someData);
    };
    module.exports = router;
    

    客户端代码:

    JS (angular.js)

    $scope.getInfo = function() { //here you make the GET call to the server
        $http.get("http://localhost:XXXX/yearStations/Spring").then(
          function(success){
            alert(success.data);//this should be your data
          }); 
    };
    

    HTML

    <button ng-click="getInfo()">getInfo</button>
    

    【讨论】:

      猜你喜欢
      • 2015-08-28
      • 2011-02-20
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多