javascript 如何导入socket.io数据包- Nodejs

o3imoua4  于 2022-12-10  发布在  Java
关注(0)|答案(4)|浏览(152)
const socketio = new Server();

从“socket.io”导入服务器;
语法错误:请求的模块“socket.io”未提供名为“default”的导出

a14dhokn

a14dhokn1#

有两种导出:命名导出(每个模块几个)和默认导出(每个模块一个)。可以同时使用这两个导出,但通常最好将它们分开。
为什么会收到此错误:您编写的import语句提供了不是默认导出的Server。如果socket.io实际上已按如下方式导出了Server,则不会出现错误。

module.exports = {
  //Other exports
  Server as default
}

您可以这样做:

import * as io from "socket.io"
import express from 'express';
import { createServer } from 'http';

const app = express(); 
const server = createServer(app); 
const socketio = new io.Server(server);

编辑:
您可以按如下方式导入socket.io:

import { Server } from 'socket.io';
import express from 'express';
import { createServer } from 'http';

const app = express(); 
const server = createServer(app); 
const socketio = new Server(server);
3qpi33ja

3qpi33ja2#

我不能相信Socket.io是如此难以导入他们的npm包。
答案在这里,谢谢@MeghAgarwal

import { Server } from 'socket.io';
import express from 'express';
import { createServer } from 'http';

const app = express(); 
const server = createServer(app); 
const socketio = new Server(server);
9fkzdhlc

9fkzdhlc3#

从v3开始,正确的方法是:

const httpServer = require('http').createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html');
  res.setHeader('Content-Length', Buffer.byteLength(content));
  res.end(content);
});
// Or const httpServer = require('http').createServer(app) if you use express

const io = require('socket.io')(httpServer);

如果你import * as io from 'socket.io',你必须调用io.io(httpServer)。我遇到了同样的错误

dauxcl2d

dauxcl2d4#

我得到了同样的错误,这对我很有效

const express = require('express');
const app = express();

const io = require("socket.io")(80);
const http = require("http");
const server = http.createServer(app);

相关问题