Я не вернулся мой token
на самом деле извлечь из моих XHR, используя промежуточные программные агенты supertest
говорят и postman
. после того, как я зарегистрирую своего пользователя.koa.js возвращающийся 404 «Not Found» после регистрации, вместо маркеров из ctx.body
Я пытаюсь получить jwt из тела, поэтому я могу сделать аутентифицированные запросы, но по какой-то причине я продолжаю получать «Not Found».
Пожалуйста, обратите внимание на мой код ..
регистрацию маршрута
router.post('/signup', signUp);
Что важно о /signup
маршрут, если я добавить промежуточное программное обеспечение после того, как signUp
смогу доступ к ctx.response.body
передан из signUp
промежуточного программного обеспечения, но я не могу опубликовать его в любом случае. Или я не знаю, как.
и SIGNUP промежуточного
const signUp = async (ctx, next) => {
const bodyInfo = await ctx.request.body;
if(!bodyInfo.username || !bodyInfo.password) {
ctx.status = 402;
ctx.body = "Error, username and password must be provided!";
}
const userInst = new User(bodyInfo);
userInst.save(async(err, user) => {
if(err) { return next(err); }
const token = tokenForUser(user);
ctx.body = token;
return next();
});
};
export { signUp, signIn };
Следует отметить, что это спасло штраф данных и при проверке в базе данных данные есть, console.logs
из ctx.response.body
в следующем промежуточное программное обеспечение до signUp
показывает сгенерированный токен.
I тест/регистрация с этим кодом:
beforeEach(async() => {
a_user = { "username": "testing",
"password": 'newpassword',
"age": 22, "height": 179
};
await User.remove({});
})
afterEach(async() => await User.remove({}));
it('signs up', async() => {
await request(inst)
.post('/api/v1/signup')
.send(a_user)
.expect(200);
});
Полный трассировки стека моей ошибки:
1) Authentication signs up:
Error: expected 200 "OK", got 404 "Not Found"
at Test._assertStatus (node_modules/supertest/lib/test.js:266:12)
at Test._assertFunction (node_modules/supertest/lib/test.js:281:11)
at Test.assert (node_modules/supertest/lib/test.js:171:18)
at assert (node_modules/supertest/lib/test.js:131:12)
at node_modules/supertest/lib/test.js:128:5
at Test.Request.callback (node_modules/superagent/lib/node/index.js:631:3)
at IncomingMessage.<anonymous> (node_modules/superagent/lib/node/index.js:795:18)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
только в тестах, но с использованием почтальон отлично работает. Есть ли что-то, что я не делаю правильно?
Я использую koa: 2.0.0
, supertest: 2.0.1
и для маршрутов koa-rest-router: 1.0.0
.
Пожалуйста, помогите! Спасибо.