显示从外部API接收的来自节点js路由后的数据

时间:2019-01-21 19:30:20

标签: javascript node.js

我试图显示从节点js中的发布路由中进行api调用后收到的json数据。但是看起来控制台在从API分配数据之前正在打印变量,我认为javascript执行正在进行而无需等待api请求完成,并且未定义response.body打印,我正在使用unirest模块。 我是js编程语言的新手,并试图学习和理解诸如回叫,promise等功能。您的建议和指导将对我有所帮助。谢谢

routes / team.js

const express = require('express');
const router = express.Router();
const path = require('path');
const request = require('request');
const unirest = require('unirest')
const { check, validationResult } = require('express-validator/check');
const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
const data = require('../data/data.json') 


router.post('/create', function(req, res){
    const url = "< api url >"
    unirest.get(url)
    .headers({'Accept': 'application/json', 'Authorization': 'Basic ***', sendImmediately: true })
    .send({ 'team': 'teamname' })
    .end(function (response) {
    console.log(response.body);
    });

   res.send("Created");

});

终端上的响应是

[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
Server started on port 3001...
undefined

应用程序的入口文件 app.js

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const flash = require('connect-flash')
const session = require('express-session')
var methodOverride = require('method-override');

// Init App
const app = express();


// set public folder
app.use(express.static(path.join(__dirname, 'public')));


app.listen(3001, function(){
    console.log('Server started on port 3001...');
});


// Route Files
let team_route = require('./routes/team')
app.use('/team', team_route)

0 个答案:

没有答案