(redis-om & fastify) this.writeEntity 不是函数

(redis-om & fastify) this.writeEntity is not a function

我正在学习将 Redis 用于我的后端数据库,我想尝试将 redis-om 用于 fastify 不确定它们是否兼容,但我出错了。

我使用app.redislabs.com

的服务

我不知道我刚才搞砸了什么?我该如何解决这个问题?

server.js

const { createCar, createIndex } = require("./redis");

app.post("/add", async (req, res) => {
  await createIndex();
  const { make, model, image, description } = req.body;
  const data = { make, model, image, description };
  await createCar(data);
  res.code(200).send('ok');
});
const PORT = 5000;
app.listen(PORT, function (err) {
  if (err) {
    app.log.error(err);
    process.exit(1);
  }
});

redis.js

const { Client, Entity, Schema, Repository } = require("redis-om");

const client = new Client();

const connect = async () => {
    if (!client.isOpen()) {
        await client.open("redis://default:password@localhost:6379");
    } else {
        console.log("CONNECTED");
    }
};

class Car extends Entity {}
let schema = new Schema(
    Car,
    {
        make: { type: "string" },
        model: { type: "string" },
        image: { type: "string" },
        description: { type: "string" },
    },
    { dataStructure: "JSON" }
);

const createCar = async (data) => {
    await connect();

    const repository = new Repository(schema, client);
    const car = repository.createEntity(data);

    const id = await repository.save(car);

    return id;
};
const createIndex = async () => {
    await connect();

    const repository = new Repository(schema, client);
    await repository.createIndex();
};
module.exports = {
    createCar,
    createIndex,
};

我的JSONBody

您不能在 Repository 上呼叫 new。这是我在 Redis OM 0.2.0 版本中引入的一个重大变化。 CHANGELOG.

中记录了其他几个

改为调用 const repository = client.fetchRepository(schema),如 here 所示。不幸的是,有些视频和博客使用的是较旧的语法,因此时不时会出现这种情况。

感谢您使用我的图书馆!