-1
このアプリはGET /test
しか持っていませんが、まだPOST /test
はありません。私はそれにバイナリファイル1.dat
をアップロードしています、それは '404'と答えを返す必要がありますが、私は受信しているようだECONNRESETエラー。NodeJS - GET後のPOSTがエクスプレスアプリで動作しないのはなぜですか?
var express = require('express');
var app = express();
var expect = require('expect.js');
var request = require('supertest');
var router = express.Router({
caseSensitive: true,
strict: true
});
router.get('/', function(req, res, next) {
res.send('test');
});
app.use('/test', router);
app.use(function(req, res, next) {
res.send('404');
});
Promise.resolve().then(function() {
var agent = request(app);
return new Promise(function(resolve, reject) {
agent
.get('/test')
.expect(200)
.end(function(err) {
if (err) {
return reject(err);
}
resolve(agent);
});
});
}).then(function(agent) {
return new Promise(function(resolve, reject) {
agent
.post('/test')
.attach('tmp', new Buffer([1, 2, 3]), '1.dat')
.expect(404)
.end(function(err, res) {
if (err) {
return reject(err);
}
resolve();
});
});
}).then(function() {
process.exit(0);
}).catch(function(err) {
console.log(err.stack);
process.exit(1);
});
しかし、なぜ.expect(404)
を検証するときに、エラーがスローされます。
[TypeError: Cannot read property 'status' of undefined]
はい、この問題は解決されませんが、同じ例外がスローされます。私は問題の根を見つけた、おそらく私は他の質問を作成します。 –
私はあなたのコードをコピーし、上記の変更を加えました。とにかく使用されなかったので、 'var expect = require( 'expect.js');も削除しました。すべてが完璧に動作するようです(ノードバージョン:v4.4.1、Expressバージョン4.14、Mac OS 10.11)。それはあなたのコードでも、それは明示的でもありません。 –