Создание модуля NPM, который работает как на стороне vue, так и express - PullRequest
0 голосов
/ 25 января 2020

Итак, я создаю модуль Auth для моего бэкэнда, который работает с обоими nodejs / express & vue. У меня есть узел / express, но у меня проблемы с использованием vue внутри модуля. Может я просто не правильно делаю? Я не совсем уверен, как это сделать сейчас. Вот мое приложение. js:

const bcrypt = require('bcryptjs');
const db = require('./db/index');
const jwt = require('./jwt')

/**
 * @user User object passed from register form. Requires a username/password
 * @return True / False based on if user was registered or not 
 */
exports.register = function(user) {
  return new Promise(function(resolve, reject){
    bcrypt.hash(user.password, 10)
    .then((hash) => {
      user.password = hash;
      db.createUser(user).then((res) => {
        res ? resolve(res) : reject('Error Occured')
      }).catch((err) => {console.log(err)})
    })
    .catch((err)=> {console.log(err)})
  })
}

/**
 * @username Username from form
 * @password Password from form
 * @return JWT Token applied to username or null
 */
exports.login = function(username, password) {
  return new Promise(function(resolve, reject){
    db.getUserByName(username).then((user) => {
      bcrypt.compare(password, user.password, function(err, res) {
        if(res) {
          delete user.password
          jwt.assignToken(user).then((token) => {
            resolve(token)
          }).catch((err)=> { reject(err) })
        } else {
          reject(err)
        }
      });    
    }).catch((err)=>{ reject(err) })    
  })
}

, и это будет мой vue. js в той же папке

const app = require('./app')

exports.install = function (Vue, options){
  Vue.prototype.$login = function(){
    app.login()
  }
  Vue.prototype.$register = function(){
    app.register()
  }
}

Очевидно, это просто основа c поскольку я еще не начал работу над этим, но он будет использовать функции из приложения. js. Какой самый эффективный способ включить это, чтобы я мог использовать один модуль для моего внешнего интерфейса vue / nuxt и моего express внутреннего интерфейса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...