0

I'm converting an application to ES6 imports instead of CommonJS requires, and I'm having trouble with the ws package.

Here's the old code:

const { createServer } = require('http');
const ws = require('ws');
const server = createServer();
server.listen(123);

const wsServer = new ws.Server({
   server
});

wsServer.on('connection', (socket) => {
//...

Here's the new code:

import wsPackage from 'ws';
const { Server } = wsPackage;

const wsServer = new Server({
    server
});

let connections = [];

wsServer.on('connection', (socket) => {
//...

But I get an error when using the Server constructor:

TypeError: Server is not a constructor

muttley91
  • 12,655
  • 28
  • 102
  • 152
  • When something is exported with ES6 modules, and the package isn't exporting just one thing, it'll almost always be imported with brackets (as a named import) - see https://www.npmjs.com/package/ws (and did you mean to import `WebSocketServer`?) – CertainPerformance Apr 27 '22 at 02:03

0 Answers0