Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
feathers-nedb-browser
Advanced tools
feathers-nedb is a database service adapter for NeDB, an embedded datastore with a MongoDB like API. NeDB can store data in-memory or on the filesystem which makes it useful as a persistent storage without a separate database server.
$ npm install --save @seald-io/nedb feathers-nedb
Important:
feathers-nedb
implements the Feathers Common database adapter API and querying syntax.
service(options)
Returns a new service instance initialized with the given options. Model
has to be an NeDB database instance.
const NeDB = require("@seald-io/nedb");
const service = require("feathers-nedb");
// Create a NeDB instance
const Model = new NeDB({
filename: "./data/messages.db",
autoload: true,
});
app.use("/messages", service({ Model }));
app.use("/messages", service({ Model, id, events, paginate }));
Options:
Model
(required) - The NeDB database instance. See the NeDB API for more information.id
(optional, default: '_id'
) - The name of the id field property. By design, NeDB will always add an _id
property.events
(optional) - A list of custom service events sent by this servicepaginate
(optional) - A pagination object containing a default
and max
page sizewhitelist
(optional) - A list of additional query parameters to allow (e.g. [ '$regex' ]
)multi
(optional) - Allow create
with arrays and update
and remove
with id
null to change multiple items. Can be true
for all methods or an array of multi methods (e.g. [ 'remove', 'create' ]
)When making a service method call, params
can contain an nedb
property which allows to pass additional NeDB options, for example to allow upsert
:
app.service("messages").update(
"someid",
{
text: "This message will be either created or updated",
},
{
nedb: { upsert: true },
}
);
On client you can't pass anything other than a query as the parameter. So you need to do it like this.
// client side
app.service("messages").update(
"someid",
{
text: "This message will be either created or updated",
},
{
query: { nedb: { upsert: true } },
}
);
then add a hook to the service to move the nedb options to the params object
(ctx) => {
const nedb = ctx.params.query.nedb;
if (nedb) {
ctx.params.nedb = nedb;
delete ctx.params.query.nedb;
}
return ctx;
};
Here is an example of a Feathers server with a messages
NeDB service that supports pagination and persists to db-data/messages
:
$ npm install @feathersjs/feathers @feathersjs/errors @feathersjs/express @feathersjs/socketio feathers-nedb nedb
In app.js
:
const feathers = require("@feathersjs/feathers");
const express = require("@feathersjs/express");
const socketio = require("@feathersjs/socketio");
const NeDB = require("@seald-io/nedb");
const service = require("feathers-nedb");
const db = new NeDB({
filename: "./db-data/messages",
autoload: true,
});
// Create an Express compatible Feathers application instance.
const app = express(feathers());
// Turn on JSON parser for REST services
app.use(express.json());
// Turn on URL-encoded parser for REST services
app.use(express.urlencoded({ extended: true }));
// Enable REST services
app.configure(express.rest());
// Enable Socket.io services
app.configure(socketio());
// Connect to the db, create and register a Feathers service.
app.use(
"/messages",
service({
Model: db,
paginate: {
default: 2,
max: 4,
},
})
);
// Set up default error handler
app.use(express.errorHandler());
// Create a dummy Message
app
.service("messages")
.create({
text: "Message created on server",
})
.then((message) => console.log("Created message", message));
// Start the server.
const port = 3030;
app.listen(port, () => {
console.log(`Feathers server listening on port ${port}`);
});
Run the example with node app
and go to localhost:3030/messages.
Copyright (c) 2019
Licensed under the MIT license.
FAQs
Feathers NeDB Service
The npm package feathers-nedb-browser receives a total of 0 weekly downloads. As such, feathers-nedb-browser popularity was classified as not popular.
We found that feathers-nedb-browser demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.