在github上运行的Javascript伪数据库
我想在在github上运行的Javascript伪数据库,javascript,database,github,jwt,github-actions,Javascript,Database,Github,Jwt,Github Actions,我想在javascript中创建一个在Github上运行的假数据库 我正在考虑使用axios模拟适配器,我知道如何设置它,但不知道如何使它工作 也就是说,如果可能,我应该如何在Github上创建它周围的环境以使其工作 目前,我设法创建了以下结构: mock.js const MockAdapter = require('axios-mock-adapter'); const axios = require('axios'); const mock = new MockAdapter(axios
javascript
中创建一个在Github
上运行的假数据库
我正在考虑使用axios模拟适配器,我知道如何设置它,但不知道如何使它工作
也就是说,如果可能,我应该如何在Github
上创建它周围的环境以使其工作
目前,我设法创建了以下结构:
mock.js
const MockAdapter = require('axios-mock-adapter');
const axios = require('axios');
const mock = new MockAdapter(axios, { delayResponse: 0 });
export default mock;
index.js
import './db/auth-db';
import mock from './mock';
mock.onAny().passThrough();
./db/auth-db.js
import _ from '@lodash';
import jwt from 'jsonwebtoken';
import mock from '../mock';
/* eslint-disable camelcase */
const jwtConfig = {
secret: 'some-secret-code-goes-here',
expiresIn: '2 days' // A numeric value is interpreted as a seconds count. If you use a string be sure you provide the time units (days, hours, etc)
};
const authDB = {
users: [
{
uuid: '08b6bf4161024491b71c397c36d8eb7d',
password: 'admin',
role: 'admin',
email: 'leo@gmail.com',
data: {
displayName: 'Leonardo DiCaprio',
photoURL: 'https://it.wikipedia.org/wiki/File:Leonardo_Dicaprio_Cannes_2019_2.jpg'
}
},
{
uuid: '77e83a5c0f414883b1655079491c278d',
password: 'staff',
role: 'staff',
email: 'depp@gmail.com',
data: {
displayName: 'Johnny Depp',
photoURL: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Johnny_Depp_Deauville_2019.jpg/440px-Johnny_Depp_Deauville_2019.jpg'
}
]
};
mock.onGet('/api/auth').reply(config => {
const data = JSON.parse(config.data);
const { email, password } = data;
const user = _.cloneDeep(authDB.users.find(_user => _user.email === email));
const error = {
email: user ? null : 'Check your username/email',
password: user && user.password === password ? null : 'Check your password'
};
if (!error.email && !error.password && !error.displayName) {
delete user.password;
const access_token = jwt.sign({ id: user.uuid }, jwtConfig.secret, { expiresIn: jwtConfig.expiresIn });
const response = {
user,
access_token
};
return [200, response];
}
return [200, { error }];
});
Github是一个源代码管理网站,为什么要这么做?此外,您无法在github中托管适当的数据库,您最好使用github页面在那里托管网页,但同样,它们是静态网页,只有您的浏览器js能够在一个会话中访问它。即使您要使用github操作,它们也会在几个小时内超时,我怀疑您是否能够连接到它。@SamridhTuladhar,OP正在尝试使用github工作流自动化测试。不,我已经使用MongoDB自动化了我的数据库测试。超时应该不是问题。好吧,那么这个问题需要一些更正,这是非常误导的。是的,你是对的,如果你正在运行一些测试,它们可能不会很快超时。Github是一个源代码管理网站,你为什么要这么做?此外,您无法在github中托管适当的数据库,您最好使用github页面在那里托管网页,但同样,它们是静态网页,只有您的浏览器js能够在一个会话中访问它。即使您要使用github操作,它们也会在几个小时内超时,我怀疑您是否能够连接到它。@SamridhTuladhar,OP正在尝试使用github工作流自动化测试。不,我已经使用MongoDB自动化了我的数据库测试。超时应该不是问题。好吧,那么这个问题需要一些更正,这是非常误导的。是的,您是对的,如果您正在对它们运行一些测试,它们可能不会很快超时。