繁体   English   中英

NodeJS-为什么GET之后的POST在Express应用中不起作用?

[英]NodeJS - Why POST after GET doesn't work in express app?

该应用程序只有GET /test ,还没有POST /test 我正在将二进制文件1.dat它,它应该返回带有'404'的答案,但是似乎我收到的是ECONNRESET错误。

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]

您不会发送状态404,而是会发送一个字符串。

app.use(function(req, res, next) {
  res.status(404).end();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM