【发布时间】:2020-07-16 01:19:32
【问题描述】:
希望有人能提供帮助,我正在学习 NodeJS/Express.js 并且正在苦苦挣扎。
下面的代码输出两个变量的内容,但是有时 res.send 命令在第二个函数('city2')有时间完成之前启动。根据我在网上阅读的内容,我需要使用 await 命令来让第二个函数有时间完成,然后再执行剩余的代码。
此外,res.write 似乎不起作用,因为我想在显示变量之前输入标题 - 是否需要添加任何额外内容才能使 res.write 起作用?
非常感谢任何帮助 - 谢谢。
var express = require('express');
var app = express();
const https = require('https');
var peopleDB;
var peopleDB2;
var cityName;
app.get('/city/:query', city, (req, res) => {
console.log(req.params.query);
})
async function city (req, res){
cityName = req.params.query;
var url = 'https://asdf-mytest-app.herokuapp.com/city/' + cityName + '/users';
const request = https.get(url, response => {
let body = "";
response.on('data', data =>{
body += data.toString();
});
response.on('end', () => {
const people = JSON.parse(body);
JSON.stringify(people);
peopleDB = people;
});
});
await city2();
res.send({peopleDB,
peopleDB2});
}
async function city2 (req, res){
cityName = req.params.query;
var url = 'https://asdf-mytest-app.herokuapp.com/city/' + cityName + '/users';
const request = https.get(url, response => {
let body = "";
response.on('data', data =>{
body += data.toString();
});
response.on('end', () => {
const people = JSON.parse(body);
JSON.stringify(people);
peopleDB2 = people;
});
});
}
【问题讨论】:
标签: node.js express async-await