在树莓派上调用Sequelize构造函数时为何出现段错误?
解决树莓派上Sequelize初始化段错误问题
重新编译原生依赖:树莓派的ARM架构可能和预编译的SQLite模块不兼容,删除现有依赖后强制从源码编译安装:
rm -rf node_modules package-lock.json npm install --build-from-source改用绝对路径存储SQLite文件:树莓派的路径解析逻辑和Windows存在差异,显式指定绝对路径可避免歧义:
const path = require('path'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'sqlite', logging: false, storage: path.resolve(__dirname, 'database.sqlite'), });调整文件目录权限:树莓派的用户权限限制更严格,确保运行机器人的用户拥有当前目录的读写权限:
chmod 755 ./ [ -f database.sqlite ] && chmod 644 database.sqlite隔离测试SQLite连接:编写最小化脚本排除discord.js的干扰,确认问题是否仅出在Sequelize初始化环节:
const { Sequelize } = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { dialect: 'sqlite', storage: './database.sqlite', }); async function testConnection() { try { await sequelize.authenticate(); console.log('数据库连接成功'); } catch (err) { console.error('数据库连接失败:', err); } } testConnection();
内容的提问来源于stack exchange,提问作者TrollBlox
相关产品推荐
相关产品推荐

