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 mongodb@3.5.x
and some bug fixes and more improvements
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.
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.
const i18next = require('i18next');
const Backend = require('i18next-node-mongodb-backend-next');
i18next.use(Backend).init({
// 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
}
};
{
uri: 'mongodb://localhost:27017/test',
dbName: 'test' // Required field
}
{
host: 'localhost',
port: 27017,
dbName: 'test' // Required field
}
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
}
{
"lang": "en-US",
"ns": "translations",
"data": {
"key": "Thank you!"
}
}
Key name is according to provided in options
Visit here for more example usage
- Add support to both of
user
&username
options.
- Add support to
mongodb
v4 #18 - Refactor the entire codebase
- Testing improvement
- Package renamed to
i18next-node-mongodb-backend-next
- Fix #9 - error collection already exists
- Critical bug fixed
- Remove
persistConnection
option - Rename
filterFieldNameCharacter
option tosanitizeFieldNameCharacter