@bageldb/bageldb-nuxt

A BagelDB module for Nuxt.js

Usage no npm install needed!

<script type="module">
  import bageldbBageldbNuxt from 'https://cdn.skypack.dev/@bageldb/bageldb-nuxt';
</script>

README

BagelDB Client for NuxtJS

BagelDB is a content management system with flexible database with user login, felx

Setup

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

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

** in older versions it used to default to $bageldb

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 };
  },
};

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 };
  },
};

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 });
    },
  },
};

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