节点快速请求调用get里面

Tie*_*eDK 6 javascript node.js express

我正在尝试将nodejs用作我公共网站和网络内部服务器之间的一个层.

我正在使用express.js来创建一个简单的REST api.API端点应触发对Web服务的请求调用,并返回结果.

但是我的.get()函数内部的请求调用没有做任何事情.

我想从嵌套调用返回结果返回.

码:

// Dependencies
var express = require('express');
var bodyParser = require('body-parser');
var request = require('request');
//Port
var port = process.env.PORT || 8080;  

// Express
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());


// Routes
app.get('/invoice', function(req, res){
   res.send('Express is workiung on IISNode')
});


app.get('/invoice/api/costumer=:customerId&invoice=:invoiceId',  function(req, res){
       res.send('Customer ID: ' + req.params.customerId + ' Invoice ID: '+ req.params.invoiceId)

      var url = 'http://xxx/invapp/getinvoice?company='+req.params.customerId+'S&customerno=13968&invoiceno='+req.params.invoiceId+'';
      request('http://www.google.com', function (error, response, body) {
      res.send(body);

      })

});

 // Start server
app.listen(port);
console.log("API is running on port " + port);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

abd*_*rik 2

你可以这样写

// Dependencies
var express = require('express');
var bodyParser = require('body-parser');
var request = require('request');
//Port
var port = process.env.PORT || 8080;  

// Express
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());


// Routes
app.get('/invoice', function(req, res){
   res.send('Express is working')
});


app.get('/invoice/api/costumer=:customerId&invoice=:invoiceId',  function(req, res){

      var url = 'http://xxx/invapp/getinvoice?company='+req.params.customerId+'S&customerno=13968&invoiceno='+req.params.invoiceId+'';
      request(url, function (error, response, body) {
        var data={
          body:body,
          customerID:req.params.customerId,
          invoiceID:req.params.invoiceId
        };
      res.send(data);
      });    
});

 // Start server
app.listen(port);
console.log("API is running on port " + port);
Run Code Online (Sandbox Code Playgroud)