在模拟窗体的节点中发送带有jest的params时出错



我正在使用jest进行CI测试,我试图像使用jest的表单一样发送参数,但我总是收到错误500,这是我的login.test.js

const request = require('supertest');
const app = require('../routes/login');
describe('Login', () => {
test('Login correcto', async () => {
const response = await request(app)
.post('/login')
.send({ user: 'hector' })
.set('user', 'hector')
.set('Content-Type', 'application/json')
expect(response.statusCode).toEqual(200)
});
});

这是我在路线上的登录日志

app.post('/login', (req, res) => {
let body = req.body;
let user = body.user;
console.log(user);

return res.status(200).send('okey');
});

我像表单一样发送给用户,但它不起作用,我收到错误500,那么我该怎么办?

问题是您的Express应用程序无法解析发送给它的JSON。使用app.use(express.json());添加Express.JSON中间件可以解决您的问题:

const express = require('express');
const app = express();
app.use(express.json());
app.post('/login', (req, res) => {
let body = req.body;
let user = body.user;
console.log(user);

return res.status(200).send('okey');
});

最新更新