带有node和express-ws的websockets端点中的可选查询参数

时间:2019-11-26 14:21:49

标签: node.js express websocket url-parameters ws

我正在使用节点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);

});

这是无效的。我从没看到控制台日志。我必须删除?并包括所有参数才能使其正常工作。

我在做什么错了,如何通过?

使用可选参数

谢谢

0 个答案:

没有答案