Итак, я создаю модуль 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 внутреннего интерфейса?