首页 > 解决方案 > 错误:尝试运行简单的服务器 js 文件时找不到模块“socket.io”

问题描述

这是我尝试使用的 server.js 文件node server.js

var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket-io')(http); //also tried socket.io instead of socket-io

io.on('connection', (socket) => {
console.log('User Online');

    socket.on('canvas-data', (data) => {
        socket.broadcast.emit('canvas-data', data);

    })
})

    var server_port = process.env.YOUR_PORT || process.env.PORT || 5000;
    http.listen(server_port, () => {
        console.log("Started on : " + server_port);
})

这是完整的错误:

internal/modules/cjs/loader.js:311
  throw err;
  ^

Error: Cannot find module 'C:\Users\rami_\OneDrive\Skola\Utbildning\White board\server\node_modules\socket-io\index.js'. Please verify that the package.json has a valid "main" 
entry
at tryPackage (internal/modules/cjs/loader.js:303:19)
at Function.Module._findPath (internal/modules/cjs/loader.js:516:18)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:867:27)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (C:\Users\rami_\OneDrive\Skola\Utbildning\White board\server\server.js:3:10)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32) {
  code: 'MODULE_NOT_FOUND',
  path: 'C:\\Users\\rami_\\OneDrive\\Skola\\Utbildning\\White board\\server\\node_modules\\socket-io\\package.json',
  requestPath: 'socket-io'
}

我已经运行npm install socket-io并且在 node_modules 文件夹中我可以看到一个名为socket-io.

标签: javascriptnode.js

解决方案


你有错误的包名称,它是socket.io,将 require 更改为require('socket.io') and re-install it with npm,你正在尝试使用一个4 岁的弃用包


推荐阅读