You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Phaser的public文件夹JS脚本中通过Sequelize访问JS模型

问题

我正在用Phaser开发一款浏览器端桌游,游戏内的tiles基于MySQL数据库中的数据生成。目前已实现点击tile将其信息存入activeTile数组的功能,现在需要实现:点击"CLAIM"按钮后,更新Mapset模型,把id为activeTile[0]的tile的所有权改为playerName变量中的字符串。但调用Mapset模型时遇到问题,尝试require和import均报错:

  • 使用require:
    在game.js首行添加代码:

    const Mapset = require("../../Models/Mapset");
    

    返回错误:

    Uncaught ReferenceError: require is not defined

  • 使用import:
    替换为以下代码:

    import Mapset from "../../Models/Mapset";
    

    仍报错:

    Uncaught SyntaxError: Cannot use import statement outside a module

相关代码

game.js中的CLAIM按钮逻辑

//onclick should update DB via model
button.on('pointerdown', function () {
    console.log('Button clicked!');
     Mapset.update({
        own: playerName
            }, {
            where: {
               id: activeTile[0]
               }
        }).then(function (result) {
          console.log("Data updated successfully!");
        });
});

Mapset.js模型代码

const { Model, DataTypes } = require("sequelize");
const sequelize = require("../config/connection");

class Mapset extends Model { }

Mapset.init(
    {
        id: {
            type: DataTypes.INTEGER,
            allowNull: false,
            primaryKey: true,
            autoIncrement: true,
        },
        x: {
            type: DataTypes.INTEGER,
            allowNull: false,
        },
        y: {
            type: DataTypes.INTEGER,
            allowNull: false,
        },
        spr: {
            type: DataTypes.STRING,
            allowNull: false,
        },
        def: {
            type: DataTypes.STRING,
            allowNull: false,
        },
        res: {
            type: DataTypes.STRING,
            allowNull: false,
        },
        own: {
            type: DataTypes.STRING,
            allowNull: true,
        },
    },
    {
        sequelize,
        freezeTableName: true,
        underscored: true,
        modelName: "Mapset",
        timestamps: false
    },
);

module.exports = Mapset;

文件结构

文件结构

内容的提问来源于stack exchange,提问作者Hezakai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:25:14