我正在嘗試從api創建節點種子腳本。該API顯示在多個頁面中,並具有一個名爲「numberOfPages」的屬性。如何運行依賴於第一個API設置的變量的API?
在每一頁上,我將播種的數據庫。所以,我打算採用'numberOfPages'變量並運行一個for循環,併爲X頁面提供適當的api響應。目前,當運行.on函數時,numberOfPages顯示爲undefined。它在下面的if語句中運行時顯示。異步執行此操作的適當方法是什麼?
"use strict"
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
var request = require('request');
let key = 'MAGICNUMBER';
let baseRequest = "http://apiurl?key=" + key;
mongoose.connect("mongodb://localhost:27017/myDatabase");
const db = mongoose.connection;
// mongo error
db.on('error', console.error.bind(console, 'connection error:'));`
function populateController(){
let numberOfPages;
request(apiRequest, function (error, response, body) {
if (!error && response.statusCode == 200) {
let apiResponse = JSON.parse(body);
numberOfPages = parseInt(apiResponse.numberOfPages);
}
}).on('end',() => {
console.log('ended');
console.log(numberOfPages);
}) })
最後,節日快樂。
作爲一個旁註,我敢肯定我能爲循環if語句中運行它,但它開始覺得真凌亂的對我來說嵌套這麼遠。 – notthehoff
難道[我的回答(https://stackoverflow.com/questions/41316729/how-to-run-api-that-is-dependent-on-variable-set-from-first-api/41317336#41317336)以下幫你?任何意見? – rsp