node.js koa无法在异步函数中向客户端发送值,但在外部

时间:2017-05-30 12:18:27

标签: javascript node.js koa

这是我的代码

-api.js -

const products=require('../pro');

module.exports ={

    'POST /api/create':async(ctx,next)=>{

        ctx.response.type = 'application/json';

        async function aaa(){
              var data=products();
              return data;
        }
        aaa().then(v=>{
            ctx.response.body=v;//the client show  status 400 
            console.log(v);//here is my json from products(),and it is correct 
        })
        ctx.response.body={a:111};// the client show it correctly


    }
}

问题是第一个ctx.response.body它无法正常工作,但另一个工作得很好,

-pro.js -

const model = require('./model/model');

var add=function () {

            return new Promise(resolve =>{

                    model.find({age:18}).lean().exec(function (err, res) {    
                        if(err){
                        }
                        if(res){
                            var result= JSON.stringify(res) ;
                            resolve(result);
                        }

                    });
            })



    }


module.exports = add;

我认为pro.js是对的,这不是我问题的关键,所以..谁可以帮助我..

1 个答案:

答案 0 :(得分:0)

我猜,这应该遵循val = 0.99861 0.98895 0.98681 0.99991 0.96057 0.99176 r = 9 7 3 8 2 9 c = 1 1 8 10 10 5 模式。由于async/await返回一个承诺,这很简单:您的pro.js可能如下所示:

const products = require('../ pro');

api.js

希望有所帮助(不是测试)