
Security News
Node.js Homepage Adds Paid Support Link, Prompting Contributor Pushback
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
@node-wot/binding-file
Advanced tools
The protocol prefix handled by this binding is file://
.
In the following examples, how to use the File binding of node-wot is shown.
npm install @node-wot/core
npm install @node-wot/binding-file
test.txt
with contentThe example tries to load an internal TestThing TD and reads the fileContent
property, which exposes the content of the file test.txt
.
node example1.js
// example1.js
const { Servient } = require("@node-wot/core");
const { FileClientFactory } = require("@node-wot/binding-file");
// create Servient and add File binding
const servient = new Servient();
servient.addClientFactory(new FileClientFactory(null));
td = {
id: "urn:dev:wot:org:w3:testthing:file",
title: "TestThing",
"@type": "Thing",
security: ["nosec_sc"],
properties: {
fileContent: {
type: "string",
readOnly: true,
observable: false,
forms: [
{
href: "file:///test.txt",
contentType: "text/plain",
op: ["readproperty"],
},
],
},
},
securityDefinitions: {
nosec_sc: {
scheme: "nosec",
},
},
};
// try to read property that exposes the content of file test.txt
try {
servient.start().then(async (WoT) => {
const thing = await WoT.consume(td);
// read property "fileContent" and print the content
const read1 = await thing.readProperty("fileContent");
console.log("Content of File:\n", await read1.value());
});
} catch (err) {
console.error("Script error:", err);
}
The example tries to load a locally stored TestThing TD and reads the fileContent
property, which exposes the content of the file test.txt
.
TD.jsonld
with content as in Example 1node example2.js
// example2.js
const { Servient } = require("@node-wot/core");
const { FileClientFactory } = require("@node-wot/binding-file");
// create Servient and add File binding
const servient = new Servient();
servient.addClientFactory(new FileClientFactory(null));
servient
.start()
.then(async (WoT) => {
// using await for serial execution (note 'async' in then() of start())
try {
const td = await WoT.requestThingDescription("file:///TD.jsonld");
const thing = await WoT.consume(td);
// read property "fileContent" and print the content
const read1 = await thing.readProperty("fileContent");
console.log("Content of File:\n" + (await read1.value()));
} catch (err) {
console.error("Script error:", err);
}
})
.catch((err) => {
console.error("Fetch error:", err);
});
FAQs
File client protocol binding for node-wot
We found that @node-wot/binding-file demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.
Research
Security News
The Socket Research Team investigates a malicious Python typosquat of a popular password library that forces Windows shutdowns when input is incorrect.