Integrations

Nuxt.js

Setup

  • Install BagelDB-Nuxt in your project
npm i @bageldb/bageldb-nuxt
1
yarn add @bageldb/bageldb-nuxt
1
pnpm add @bageldb/bageldb-nuxt
1
  • Add Module to nuxtConfig.js
  modules: [
    [
        '@bageldb/bageldb-nuxt',
        { token: process.env.NUXT_ENV_BAGEL_TOKEN, alias: "db"}]
  ],
1
2
3
4
5

The default alias is $bageldb but can be set easily in the import. Two instances can be used in one project, but they must have different instances.

Use It

The db instance can be accessed globally anywhere in the code

retreive it via the context:

export default {
  async asyncData({ $db }) {
    let { data: books } = await $db.collection('books').get();
    return { books };
  },
};
1
2
3
4
5
6

if you call the instance via the fetch() method, use this before calling it

export default {
  async fetch() {
    let { data: books } = await this.$db.collection('books').get();
    return { books };
  },
};
1
2
3
4
5
6

Authentication

Using Auth with Nuxt.js works the same as evey BagelDB js framework, by using the users() method.

export default {
  methods: {
    async login(email, password) {
      await this.$db.users().validate(email, password);
    },
    async logout() {
      await this.$db.users().logout();
    },
    async signUp(email, password, userName) {
      let userID = await this.$db
        .users()
        .create(email, password)
        .catch((err) => console.log(err));
      // create an item with the user's id to store more information about the user.
      await this.$db.collection('users').item(userID).set({ email, userName });
    },
  },
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

every call made after that will use the Auth token stored in the cookie.

Last Updated:
Contributors: nallon