i18next-node-mongo-backend

0.0.4 • Public • Published

npm license

Build Status codecov Maintainability code style: prettier

Inspired from i18next-node-mongodb-backend with support for mongodb@3.5.x and some bug fixes and more improvements

Integrate i18next with MongoDB

I18next LogoMongoDB Logo

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

Package Sidebar

Install

npm i i18next-node-mongo-backend

Weekly Downloads

9

Version

0.0.4

License

MIT

Unpacked Size

76 kB

Total Files

15

Last publish

Collaborators

  • laodemalfatih