控制流问题与mongoose模型的发现

时间:2017-04-28 04:42:58

标签: node.js mongodb typescript mongoose koa


我完全是节点的新手,它的框架是Koa和express。我有一个名为 Drawing 的猫鼬模型和一个路由器模块。

问题在于快速路由器我能够使用Drawing.find方法从数据库获取数据但是使用Koa,控制甚至不进入Drawing.find。我根本无法得到数据。请找到以下相关代码,帮助我更好地理解这些内容。

这是我的路由器模块

import mongoose = require("mongoose");

export interface IDrawing extends mongoose.Document {
  drawingId:Number,
  drawingName:String,
  updatedOn:Date,
  updatedBy:Number
};

export const DrawingSchema = new mongoose.Schema({
  drawingId:Number,
  drawingName:String,
  updatedOn:Date,
  updatedBy:Number
});

const Drawing = mongoose.model<IDrawing>('Drawing', DrawingSchema);
export default Drawing;

模型是

try:
    from itertools import izip
except ImportError:  # Python 3
    izip = zip

def load_image_data(infile):
    rows = []
    for line in infile:
        values = [int(v) for v in line.split()]
        tuples = [t for t in izip(*[iter(values)]*3)]
        rows.append(tuples)

    return rows

def main():
    with open("ny.ppm", "r") as infile, open("ny_negative.ppm", "w") as outfile:
        process_header(infile, outfile)
        image_data = load_image_data(infile)
        print(image_data)
        # etc ...

main()

正如您在我的路由器模块中看到的那样,控件实际上是为了/绘图,它在控制台“内部/绘图”中打印,但随后控件不会进入Drawing.find。我很难理解这一点。

1 个答案:

答案 0 :(得分:2)

要弄清楚发生了什么有点困难,因为看起来你到处都有问题。让我指出突出的事情:

    声明
  1. getRoutesForDrawing返回路由器并且不返回任何内容
  2. Koa路线不像快递。特别是它们不是基于回调的。它们采用生成器函数(Koa 1.x)或异步函数(Koa 2.x)。你似乎期望它想要一个无法工作的回调函数。假设koa 2.x,其router.get('/drawing', async(context) => {...});
  3. 假设koa 2.x,您需要等待mongoose方法的结果,例如: context.body = await Drawing.find({})