我正在使用节点10.16.0,表示4.0.0和express-ws module。
Express-ws应该为websocket创建快速样式的端点。
我想创建一些websocket端点,使其某些参数为可选。
在节点快速路由中,我这样做
router.get('/:user/:date?/:time?',(req, res)=>{
因此,日期和时间可以为空,URL可以仅为myproject.com/Username
,并且仍然有效。
但是在websocket端点中,我尝试做同样的事情
//app.js main node file
const app = express();
const wsHttpServer = http.createServer();
wsHttpServer.listen(5001);
const expressWs = require('express-ws')(app , wsHttpServer);
app.use(cors());
app.use(express.static(path.join(__dirname,'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.json());
app.use(express.urlencoded({extended:false}));
app.use('/ws', require('./routes/wsroute'));
//and then in the wsroute.js file
router.ws('/:user/:date?/:time?', (ws, req) => {
const user = req.params.user;
const date = req.params.date;
const time = req.params.time;
console.log('ws route',user, date, time);
});
这是无效的。我从没看到控制台日志。我必须删除?
并包括所有参数才能使其正常工作。
我在做什么错了,如何通过?
谢谢