首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节点js mosca broker错误:应将‘schema`’作为对象或布尔值

节点js mosca broker错误:应将‘schema`’作为对象或布尔值
EN

Stack Overflow用户
提问于 2020-10-04 05:11:43
回答 3查看 6.2K关注 0票数 4

我已经创建了一个简单的代理:

代码语言:javascript
运行
复制
var mosca = require("mosca");
var settings = {
  port: 1883,
};

var server = new mosca.Server(settings);

server.on("ready", function () {
  console.log("ready");
});

当我运行这个文件时,我得到了这个错误:

代码语言:javascript
运行
复制
/home//Documents/mqtt/node_modules/jsonschema/lib/validator.js:107
    throw new SchemaError('Expected `schema` to be an object or boolean');
    ^
SchemaError: Expected `schema` to be an object or boolean
    at Validator.validate (/home//Documents/mqtt/node_modules/jsonschema/lib/validator.js:107:11)
    at Object.validate (/home//Documents/mqtt/node_modules/mosca/lib/options.js:264:26)
    at new Server (/home//Documents/mqtt/node_modules/mosca/lib/server.js:104:34)
    at Object.<anonymous> (/home//Documents/mqtt/broker.js:16:14)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47 {
  schema: undefined
}

我正在运行:

节点: v12.18.4

npm: 6.14.6

EN

回答 3

Stack Overflow用户

发布于 2020-10-05 02:08:30

就像JD Allen所说的,运行aedes比mosca更好,在它的依赖jsonschema更新到1.2.8版本后,它被破坏了,你可以手动安装jsonschema 1.2.6来运行它,而不会出错。在更新到1.2.8之前还没有被破坏

票数 4
EN

Stack Overflow用户

发布于 2020-10-28 07:06:25

validator.js (\node_modules\jsonschema\lib\validator.js:111)中注释以下行:

代码语言:javascript
运行
复制
if((typeof schema !== 'boolean' && typeof schema !== 'object') || schema === null){
     throw new SchemaError('Expected `schema` to be an object or boolean');
}
票数 3
EN

Stack Overflow用户

发布于 2021-12-01 15:05:59

在运行时转到\node_modules\jsonschema\lib\validator.js。将第106行的代码替换为

代码语言:javascript
运行
复制
if((typeof schema == 'boolean' && typeof schema == 'object') || schema === null){

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64189045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档