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-mongo-backend

v0.0.4

Published

Use i18next with mongodb as backend

Downloads

54

Readme

npm license

Build Status codecov Maintainability code style: prettier

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.

Getting started

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

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

Usage

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

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
  user: '<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:

// Key name is according to provided in options
{
  "lang": "en-US",
  "ns": "translations",
  "data": {
    "key": "Thank you!"
  }
}

Visit here for more example usage

Change Log:

v0.0.4 (08-04-20):

  • 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