wil*_*ago 2 sqlite node.js sequelize.js sequelize-cli
我有一个新的 app.js 的最基本的框架,在节点中设置了sequelize 和express。每当我运行该项目时,我都会得到:
{ Error: SQLITE_CANTOPEN: unable to open database file errno: 14, code: 'SQLITE_CANTOPEN' }
我已经四处寻找解决方案,但根据我发现的其他帖子,我没有使用其他技术,例如电子,这些技术似乎会引起问题。我也尝试了将我的database.sqlite3从根目录移动到它自己的文件夹中的建议,但这没有帮助。
我的 app.js 看起来仍然像一个样板。我真的没有做太多事情,只是尝试在创建模型并使用sequelize-cli 迁移后测试连接。
const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
//Database Connection
const db = require('./config/database');
const Sequelize = require("sequelize");
const sequelize = new Sequelize({
dialect: "sqlite",
storage: "path/to/database.sqlite"
});
//Test the DB Connection
sequelize.authenticate()
.then(() => console.log('Database Connected'))
.catch(err => console.log('Error: ', err))
//Server
const app = express()
app.get('/', (req, res) => res.send('HELLO WORLD'))
const PORT = process.env.PORT || 5000;
app.listen(PORT, console.log(`Server started on ${PORT}`));
Run Code Online (Sandbox Code Playgroud)
我的 config.json 如下,我仔细检查了路径。
{
"development": {
"dialect": "sqlite",
"storage": "./db/database.sqlite3"
},
"test": {
"dialect": "sqlite",
"storage": ":memory"
},
"production": {
"dialect": "sqlite",
"storage": "./db/database.sqlite3"
}
}
Run Code Online (Sandbox Code Playgroud)
您的文件中似乎仍然有样板代码。具体来说,看看这些行:
const sequelize = new Sequelize({
dialect: "sqlite",
storage: "path/to/database.sqlite"
});
Run Code Online (Sandbox Code Playgroud)
看起来您没有使用配置文件;相反,您尝试打开位于 的数据库文件path/to/database.sqlite3。
试试这个:
const sequelize = new Sequelize(db[process.env.NODE_ENV]);
Run Code Online (Sandbox Code Playgroud)
(我假设您想要加载与当前环境相对应的数据库配置)。
| 归档时间: |
|
| 查看次数: |
5335 次 |
| 最近记录: |