私はNode、Express、Objection.jsで作業しています。 私のファイル構造は次のとおりです。私のindex.jsコードでコントローラから約束の値を返してください
->Project Folder
->Controllers(folder)
->agenciaController.js
->Models(folder)
->Agencia.js
->index.js
は次のとおりです。
var Knex = require('knex');
var express = require("express");
var app = express();
var knexConfig = require('./knexfile');
var Model = require('objection').Model;
var knex = Knex(knexConfig.development);
Model.knex(knex);
var reqAgenciaController = require('./Controllers/agenciaController');
var agenciaController = new reqAgenciaController();
app.get("/agencias", function(req, res) {
var respuesta = agenciaController.getAgencias();
console.log("log3: "+respuesta);
});
そして、私のagenciaController.jsは次のとおりです。
var Agencia = require('../Models/Agencia');
module.exports = agenciaController;
function agenciaController() {
this.getAgencias = function() {
var retValue = "retvalue";
listaAgencias = [];
Agencia.query()
.then(function(agencias) {
listaAgencias = agencias;
console.log("log1: "+ listaAgencias);
});
console.log("log2: "+listaAgencias);
return listaAgencias;
}
}
私の問題は、私が実行したときにということですコード、取得する
log2:
log3: undefined
log1: [object Object, object Object].
しかし、私は必要があります。
log1: [object Object, object Object].
log2: [object Object, object Object].
log3: [object Object, object Object].
私の質問は:それは約束で得られた値で、index.jsにコントローラからlistaApuestasを戻すことができますか?
あなたが約束がどのように動作するかuderstandしませんが、調査します[この記事](https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html?utm_source=javascriptweekly&utm_medium=email) – alexmac