1
我在超級帖子發送請求正文時遇到了很多麻煩。我已閱讀其他問題的解決方案,這些問題歸咎於不正確的body-parser配置,但這些答案指的是自定義數據類型。 (res.body is empty in this test that uses supertest and Node.js)。我身上配置的解析器是這樣的:supertest請求與應用程序/ vnd的空身
var bodyParser = require('body-parser');
app.use(bodyParser.json({ limit: '50mb', type: 'application/vnd.api+json' }));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
該解決方案我提供的帖子中寫道:「supertest使用this文件,以確定是否要發送JSON或不是。」我的內容類型實際上列在那裏,所以我不明白爲什麼這應該是一個問題。
我嘗試發佈的請求,像這樣:
it ('creates user', function (done) {
var user = {
firstname: 'Joe',
lastname: 'JoeJoe',
email: '[email protected]',
password: 'spartacus',
};
request(app)
.post('/api/users')
.send(user)
.expect(200)
.expect('Sent email to [email protected]', done)
});
});
我導入我的應用程序這一行:
var app = require('../server.js');
凡server.js完全配置我的應用程序。 supertest支持這種應用程序類型嗎?有沒有辦法強制用戶數據作爲req.body的一部分被注意到?
不要忘記發送的Content-Type頭「應用/ vnd.api + JSON」 – lxe
你能解釋一下在哪裏設置? – ritmatter
'request(app) .post('/ api/users',{headers:{'content-type':'application/vnd.api + json'}})' – lxe