我正在使用es6脚本编写示例代码来处理node.js中的套接字连接,在导入socket.io时会引发错误
import {
PORT
} from './config';
import express from 'express';
import io from 'socket.io';
var app = express();
// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world')
});
io.on('connection', function(socket) {
console.log('a user connected');
});
app.listen(PORT, () => console.log(`Example app listening on port ${PORT}!`));
错误是
/index.js:17 _socket.default.on('connection',function(socket){ ^
TypeError:_socket.default.on不是函数 在Object.on(/Users/digvijay.upadhyay/digvijayu/websocket_with_node/src/index.js:15:4) 在Module._compile(module.js:643:30) 在Module._compile(/Users/digvijay.upadhyay/digvijayu/websocket_with_node/node_modules/pirates/lib/index.js:83:24) 在Module._extensions..js(module.js:654:10) 在Object.newLoader [作为.js](/Users/digvijay.upadhyay/digvijayu/websocket_with_node/node_modules/pirates/lib/index.js:88:7) 在Module.load(module.js:556:32) 在tryModuleLoad(module.js:499:12) 在Function.Module._load(module.js:491:3) 在Function.Module.runMain(module.js:684:10) 在对象。 (/用户/digvijay.upadhyay/digvijayu/websocket_with_node/node_modules/@babel/node/lib/_babel-node.js:224:23) [nodemon]应用程序崩溃-等待文件更改,然后再开始... 使用Babel成功编译了2个文件。成功编译2 Babel保存文件。
答案 0 :(得分:1)
您需要调用函数require('socket.io')()
并在其中传递一个表达实例。
请查看添加的代码示例:
const express = require('express');
const http = require('http');
const socketIO = require('socket.io');
const app = express();
const server = http.createServer(app);
// this line \/
const io = socketIO(server);
// this line /\
io.on('connection', (socket) => {
//...
});
server.listen(port, () => {
//...
});