如何在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
相关产品推荐
相关产品推荐

