npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

i18next-node-mongodb-backend-next

v1.0.3

Published

Use i18next with mongodb as backend

Downloads

445

Readme

npm license code style: prettier

Are you a Deno user? If true, we provide the same library for Deno. See: Mongo Backend for Deno 🦖

Inspired from i18next-node-mongodb-backend with support for [email protected] and some bug fixes and more improvements

Integrate i18next with MongoDB

Introduction

This is a i18next backend to be used Node JS. It will load resources from a MongoDB database with official node mongodb driver.

Prevously is i18next-node-mongo-backend. Because i lost my NPM account, the package was renamed to i18next-node-mongodb-backend-next.

Getting started

yarn add mongodb i18next-node-mongodb-backend-next
# or
npm install mongodb i18next-node-mongodb-backend-next

Important: This library doesn't include mongodb library. You need to install it yourself.

Usage

const i18next = require('i18next');
const Backend = require('i18next-node-mongodb-backend-next');

i18next.use(Backend).init({
  // Backend Options
  backend: options,
});

Backend Options

{
  // Database Name
  dbName: '<DB Name>', // Required

  // MongoDB Uri
  uri: '<DB URI>',

  // Or

   // MongoDB standard configuration
  host: '<DB Host>',
  port: 27017,

  // Or

  // If you have your own `MongoClient`, put in here:
  // Note: If this has already been entered, the other MongoDB configurations will be ignored
  client: new MongoClient(), // work with connected client or not

  // MongoDB authentication. Remove it if not needed
  // Choose one, `user` or `username`. Both are the same.
  user: '<DB User>',
  username: '<DB User>',
  password: '<DB Password>',

  // Collection name in database will be used to store i18next data
  collectionName: 'i18n',

  // MongoDB field name
  languageFieldName: 'lang',
  namespaceFieldName: 'ns',
  dataFieldName: 'data',

  // Remove MongoDB special character from field name. See https://jira.mongodb.org/browse/SERVER-3229
  sanitizeFieldNameCharacter: true,

  // Error handlers
  readOnError: console.error,
  readMultiOnError: console.error,
  createOnError: console.error,

  // MongoClient Options. See https://mongodb.github.io/node-mongodb-native/3.5/api/MongoClient.html
  mongodb: {
    useUnifiedTopology: true
  }
};

Example Backend Options

Connect with uri:

{
  uri: 'mongodb://localhost:27017/test',
  dbName: 'test' // Required field
}

Connect with host and port:

{
  host: 'localhost',
  port: 27017,
  dbName: 'test' // Required field
}

Connect with MongoClient instance (Recommended):

If you already have your own connection, use this to avoid useless connections

{
  client: new MongoClient(), // Change with your MongoClient instance
  dbName: 'test', // Required field
}

Example of the MongoDB document that will be created:

{
  "lang": "en-US",
  "ns": "translations",
  "data": {
    "key": "Thank you!"
  }
}

Key name is according to provided in options

Visit here for more example usage

Changelog:

v1.0.1 (19-05-2022)

  • Add support to both of user & username options.

v1.0.0 (19-05-2022)

  • Add support to mongodb v4 https://github.com/lamualfa/i18next-node-mongodb-backend-next/issues/18
  • Refactor the entire codebase
  • Testing improvement

v0.0.5 (13-07-2021):

v0.0.4 (08-04-2020):

  • Critical bug fixed
  • Remove persistConnection option
  • Rename filterFieldNameCharacter option to sanitizeFieldNameCharacter

v0.0.3 (DEPRECATED):

  • Add testing code with Jest
  • Add JSDOC
  • Add support for the uri option
  • Add filterFieldNameCharacter option
  • Some improvements