从文件导入类会给出未加速的字符串错误



我正在尝试使用套接字为游戏制作一个非常简单的服务器脚本。

我基本上有一个服务器.js它使用快速和 socket.io 来接受连接并提供公共文件夹中的任何内容。

let express = require("express");
let app = express();
app.use(express.static("public"));
let server = app.listen(3000);
let socket = require("socket.io");
let io = socket(server);
io.sockets.on("connection", newConnection);
function newConnection(socket) {
console.log("New connection: " + socket.id);
}

这是一个基本脚本,它接受来自客户端的连接,并且仅在客户端连接时打印。

我已经做了一个npm init,安装了快递和 socket.io,我使用npm start运行它,它工作正常。

现在,我已经在文件游戏中构建了一个类游戏.js当客户端连接时,我只想实例化游戏。

像这样:

function newConnection(socket) {
console.log("New connection: " + socket.id);
let game = new Game();
}

问题是我不知道如何导入游戏。

我尝试使用导入,但显然我没有使用正确的语法:

import "game.js"
import "game.js"
^^^^^^^^^
SyntaxError: Unexpected string

我只想在我的服务器内部.js使用我在同一文件夹中的文件中实现的类。我该怎么做?

使用node 时,不使用 "import" 关键字,而是使用 "require"(就像您在服务器中已经使用 express 和 socket.io 所做的那样.js(。

这看起来像这样:

let game = require("game.js");

不要忘记导出游戏中所需的功能.js。

exports.newConnection = function(socket) {
console.log("New connection: " + socket.id);
let game = new Game();
}

这样,你可以从服务器内部调用你的newConnection函数.js

方法是键入:
io.sockets.on("connection", game.newConnection);

如果你只需要一个类中的一个函数,你也可以通过显式声明这个函数来"需要"一个函数,比如:

let gameconnection = require("game.js").newConnection;

然后调用它:

io.sockets.on("connection", gameconnection);

最新更新