Это может решить вашу проблему
. Я также столкнулся с той же проблемой в приложении ReactJS в режиме Production. Вот 2 решение проблемы.
1. Измените историю маршрутизации на «hashHistory» вместо браузераHistory вместо
<Router history={hashHistory} >
<Route path="/home" component={Home} />
<Route path="/aboutus" component={AboutUs} />
</Router>
Теперь создайте приложение, используя команду
sudo npm run build
Затем поместите папку сборки в папку var / www / Now. Теперь приложение отлично работает с добавлением # тега в каждом URL-адресе. как
localhost / # / home localhost / # / aboutus
Решение 2: Без # тега, использующего browserHistory,
Задайте свою историю = {browserHistory} в своем Router, теперь создайте его, используя sudo npm run build.
Вам нужно создать файл «conf» для решения 404 не найденной страницы, файл conf должен быть таким.
откройте свой тип терминала следующими командами
cd / etc / apache2 / sites-available ls nano sample.conf Добавьте в него содержимое ниже.
<VirtualHost *:80>
ServerAdmin admin@0.0.0.0
ServerName 0.0.0.0
ServerAlias 0.0.0.0
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Теперь вам нужно включить файл sample.conf с помощью следующей команды
cd /etc/apache2/sites-available
sudo a2ensite sample.conf
, то он попросит вас перезагрузить сервер Apache, перезагрузив или перезагрузив sudo-сервис apache2 или перезагрузив
, затем откройте файл localhost / создайте папку и добавьте файл .htaccess с содержимым ниже.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ / [L,QSA]
Теперь приложение работает нормально.
Примечание: измените 0.0.0.0 ip на локальный IP-адрес.
Если какие-либо сомнения относительно этого, не стесняйтесь поднять комментарий.
Надеюсь, это полезно другим.
Я создал простой тестовый костюм, и он прошел. Я не мог определить проблему по твоей валидации.
const Lab = require('lab');
const lab = exports.lab = Lab.script();
const describe = lab.describe;
const it = lab.it;
const expect = require('code').expect;
const Joi = require('joi');
describe('Validator accountSetupToken checks', () => {
let validation = Joi.object().keys({
name: Joi.string().required(),
password: Joi.string().min(4).max(20).required(),
verify: Joi.string().required(),
email: Joi.string().email().required(),
username: Joi.string().min(3).max(20).required(),
referredBy: Joi.any(),
dob: Joi.date().required().label('Date of Birth')
});
it('Reject invalid payload', async () => {
const result = Joi.validate({
name: 'vulcan',
password: 'vulcan@123',
verify: 'vulcan@123',
email: 'vulcan@gmail.com',
username: 'vulcan',
referredBy: 'admin@gg',
dob: '12/08/1994'
}, validation, {abortEarly: false});
expect(result.error).to.null();
expect(result.error).to.not.exist();
});
});
Вот результат.
> lab --coverage-exclude test/data -m 5000n -a code -P "simple" "test/validators"
.
1 tests complete
Test duration: 13 ms
Assertions count: 2 (verbosity: 2.00)
No global variable leaks detected
Но тогда я увидел в вашем сообщении об исключении следующее
details:
[ { message: '"password" is required',
path: [Array],
type: 'any.required',
context: [Object] } ],
_object:
{ password: undefined,
cookie: 'GG-auth',
isSecure: false,
clearInvalid: true,
ttl: 86400000,
redirectTo: '/login',
appendNext: true,
redirectOnTry: false,
isSameSite: 'Lax' },
annotate: [Function] }
Поле пароля кажется неопределенным, вы уверены, что делаете правильный запрос на ваш маршрут?