Raf*_*ael 4 repository mongodb node.js typeorm
我正在尝试使用存储库通过 MongoDB 实现 TypeORM。然而,当我尝试使用存储库来管理数据库时,使用与此存储库中相同的结构,事情就有点偏离了。我收到以下错误:
UnhandledPromiseRejectionWarning:类型错误:无法读取未定义的属性“原型”
我尝试过以下代码:
import { Request, Response } from 'express';
import { getMongoRepository } from "typeorm";
import Task from "../models/Task";
export default class TasksController {
async listAll(request: Request, response: Response): Promise<Response> {
const tasksRepository = getMongoRepository(Task);
try {
const tasks = await tasksRepository.find();
return response.status(200).json({ "items": tasks });
} catch (err) {
return response.status(400).json({
message: err.message,
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道错误是指执行该.find()方法。我什至成功地获取了数据,使用这篇文章中的建议替换:
const tasks = await tasksRepository.find();
Run Code Online (Sandbox Code Playgroud)
和
const tasks = await tasksRepository.createCursor(tasksRepository.find()).toArray();
Run Code Online (Sandbox Code Playgroud)
但我仍然收到上述错误。
有人明白发生了什么事吗?
我还设法通过使用以下脚本将数据直接保存到数据库:
服务器.ts
import express from 'express';
import { createConnection } from 'typeorm'
const app = express();
const port = 3333;
createConnection();
app.use(express.json());
app.post('/tasks', (async (request, response) => {
const { item } = request.body;
task.item = item;
const task = new Task();
(await connection).mongoManager.save(task);
return response.send(task);
}))
app.listen(port, () =>
console.log(`Server running on port ${port}`)
);
Run Code Online (Sandbox Code Playgroud)