Javascript 当url有一个?对于可选参数,有什么想法吗?

Javascript 当url有一个?对于可选参数,有什么想法吗?,javascript,node.js,supertest,Javascript,Node.js,Supertest,我有一条这样的路线: router.delete("/:id?", controller); const res = await request(app) .delete(`${url}/credentials/123`) .send({ payload }); 当我试图用supertest测试这条路线时,就像这样: router.delete("/:id?", controller); const res = await request(app)

我有一条这样的路线:

router.delete("/:id?", controller);
const res = await request(app)
    .delete(`${url}/credentials/123`)
    .send({
        payload
    });
当我试图用supertest测试这条路线时,就像这样:

router.delete("/:id?", controller);
const res = await request(app)
    .delete(`${url}/credentials/123`)
    .send({
        payload
    });
测试失败了,因为在expect中,我在等待500

expect(res.status).to.be.eql(500);
它有一个404,好像路线不存在。但是当我尝试没有可选id的测试时,它们通过了预期


你知道会发生什么吗?

下面是一个简单的工作示例:

app.js

const express=require(“express”);
常量app=express();
const{Router}=require(“express”);
使用(express.json());
const router=新路由器();
功能控制器(req、res){
res.sendStatus(500);
}
删除(“/:id?”,控制器);
应用程序使用(“/api/credentials”,路由器);
module.exports=app;
app.test.js

const-app=require(“./app”);
const request=要求(“超级测试”);
const{expect}=require(“chai”);
描述(“57872239”,()=>{
它(“应该通过”,异步()=>{
常量有效载荷={};
const url=“/api”;
const res=等待请求(应用程序)
.delete(`${url}/credentials/123`)
.send({payload});
expect(res.status).to.be.eql(500);
});
});
100%覆盖率的集成测试结果:

57872239
✓ 应该通过
1次通过(42毫秒)
-------------|----------|----------|----------|----------|-------------------|
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s|
-------------|----------|----------|----------|----------|-------------------|
所有文件| 100 | 100 | 100 | 100 ||
app.js | 100 | 100 | 100 | 100 ||
app.test.js | 100 | 100 | 100 | 100 ||
-------------|----------|----------|----------|----------|-------------------|

源代码:

以下是一个简单的工作示例:

app.js

const express=require(“express”);
常量app=express();
const{Router}=require(“express”);
使用(express.json());
const router=新路由器();
功能控制器(req、res){
res.sendStatus(500);
}
删除(“/:id?”,控制器);
应用程序使用(“/api/credentials”,路由器);
module.exports=app;
app.test.js

const-app=require(“./app”);
const request=要求(“超级测试”);
const{expect}=require(“chai”);
描述(“57872239”,()=>{
它(“应该通过”,异步()=>{
常量有效载荷={};
const url=“/api”;
const res=等待请求(应用程序)
.delete(`${url}/credentials/123`)
.send({payload});
expect(res.status).to.be.eql(500);
});
});
100%覆盖率的集成测试结果:

57872239
✓ 应该通过
1次通过(42毫秒)
-------------|----------|----------|----------|----------|-------------------|
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s|
-------------|----------|----------|----------|----------|-------------------|
所有文件| 100 | 100 | 100 | 100 ||
app.js | 100 | 100 | 100 | 100 ||
app.test.js | 100 | 100 | 100 | 100 ||
-------------|----------|----------|----------|----------|-------------------|
源代码: