I have created a simple broker:
var mosca = require("mosca");
var settings = {
port: 1883,
};
var server = new mosca.Server(settings);
server.on("ready", function () {
console.log("ready");
});
I get this error when i run i run the file:
/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
}
I am running:
node: v12.18.4
npm: 6.14.6
Like JD Allen said, better to run aedes than mosca, it's broken after it's dependency jsonschema updated to version 1.2.8, you can manually install jsonschema 1.2.6 to run it without error. it's not yet broken before updated to 1.2.8
comment this line in validator.js
(\node_modules\jsonschema\lib\validator.js:111
):
if((typeof schema !== 'boolean' && typeof schema !== 'object') || schema === null){
throw new SchemaError('Expected `schema` to be an object or boolean');
}
In the runtime go to \node_modules\jsonschema\lib\validator.js. Replace the code on line 106 with
if((typeof schema == 'boolean' && typeof schema == 'object') || schema === null){
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With