dynogels всегда сообщает мне о недопустимом содержимом схемы даже при использовании примеров из репозитория github

Я пытаюсь использовать диногели в качестве ORM для DynamoDB, но не могу заставить работать даже самый простой пример. Независимо от того, что я делаю, машинописный текст выдает ошибку "Недопустимое содержимое схемы" в тот момент, когда я пытаюсь его использовать.

Команда выполнения

ts-node main.ts 

main.ts

import * as Dynogels from "dynogels";
import * as Joi from "joi";

// this comes out of an example on the dynogels github page
var BlogPost = Dynogels.define('BlogPost', {
  hashKey : 'email',
  rangeKey : 'title',
  schema : {
    email   : Joi.string().email(),
    title   : Joi.string(),
    content : Joi.string(),
    tags   : Dynogels.types.stringSet(),
  }
});

console.log("this doesn't work")

package.json

{
  "name": "stackrupost",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@types/dynogels": "^9.0.3",
    "@types/joi": "^14.3.4",
    "dynogels": "^9.1.0",
    "joi": "^17.2.0",
    "typescript": "^3.9.7"
  }
}

Когда я бегу, я получаю

StackruPost/node_modules/dynogels/node_modules/joi/node_modules/hoek/lib/index.js:740 выдать новую ошибку (msgs.join(' ') || 'Неизвестная ошибка'); ^ Ошибка: недопустимое содержимое схемы: в Object.exports.assert (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/node_modules/hoek/lib/index.js:740:11) в Object.exports. схема (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/cast.js:55:10) во внутреннем.Object.keys (/Users/stephencuzzort/Projects/StackruPost/node_modules/dyncmodules / /joi/lib/types/object/index.js:352:35) в Object.exports.schema (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/cast.js:36:29) на внутреннем уровне.ключи (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/object/index.js:352:35) в Object.exports.schema (/Users / stephencuzzort / Produles / StackruPost / /dynogels/node_modules/joi/lib/cast.js:36:29) на internals.Object.keys (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/object/index.js:352:35) на Joi.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/lib/schema.js:121:71) на внутреннем.Object._validateWithOptions (/Users/stephencuzzort/Proflow / StackOdules/dynogels/node_modules/joi/lib/types/any/index.js:666:20) в module.exports.internals.Any.root.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)23)23)схемы (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/cast.js:36:29) во внутреннем.Object.keys (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels / /joi/lib/types/object/index.js:352:35) в Joi.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/lib/schema.js:121:71) в internals.Object. _validateWithOptions (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/any/index.js:666:20) по адресу module.exports.internals.Any.root.validate (/ Users / /Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)схемы (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/cast.js:36:29) во внутреннем.Object.keys (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels / /joi/lib/types/object/index.js:352:35) в Joi.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/lib/schema.js:121:71) в internals.Object. _validateWithOptions (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/any/index.js:666:20) по адресу module.exports.internals.Any.root.validate (/ Users / /Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)ключи (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/object/index.js:352:35) в Joi.validate (/ Node / stephencuzzort / Projects / StackruPost / dync. /lib/schema.js:121:71) на internals.Object._validateWithOptions (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/any/index.js:666:20) в module.exports.internals.Any.root.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)ключи (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/object/index.js:352:35) в Joi.validate (/ Users / stephencuzzort / Projects / StackruPost / dyn /lib/schema.js:121:71) во внутреннем.Object._validateWithOptions (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/types/any/index.js:666:20) в module.exports.internals.Any.root.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)20) в module.exports.internals.Any.root.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)20) в module.exports.internals.Any.root.validate (/Users/stephencuzzort/Projects/StackruPost/node_modules/dynogels/node_modules/joi/lib/index.js:139:23)

Почему я продолжаю получать это, даже когда использую пример со страницы github? Как я могу заставить этот пример работать?

1 ответ

Нашел проблему. Это былjoi несоответствие версий.

Вам нужно либо убедиться, что joi версии точно совпадают или импортируются из диногелей node_modules

импортировать * как Joi из "dynogels/node_modules/joi";

исправил это для меня.

Другие вопросы по тегам