Nit*_*jia 5 node.js sequelize.js
我是新手。我正在尝试使用行查询,但出现错误。
码:
const sequelize = require('sequelize');
sequelize.query("SELECT * from users").then(results => {
console.log(results);
})
Run Code Online (Sandbox Code Playgroud)
调用此API时出错:
(node:2380) UnhandledPromiseRejectionWarning: TypeError: sequelize.query is not a function
at Promise (C:\NodejsProject\mars\app\schedule\models\schedule.js:247:17)
at new Promise (<anonymous>)
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
您不能
sequelize直接从中使用require('sequelize');,首先我们需要创建该实例,然后将根据数据库详细信息创建该实例,因此sequelize可以知道在哪个平台上必须运行查询的数据库
这是一个基本的代码段,仅供参考:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'|'sqlite'|'postgres'|'mssql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
// SQLite only
storage: 'path/to/database.sqlite',
// http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
operatorsAliases: false
});
sequelize.query("SELECT * from users").then(results => {
console.log(results);
});
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息:请阅读
如果你在外部文件中运行你的数据库配置并且想要额外的层来防止 SQL 注入 ./database/dbs.js
const Sequelize = require('sequelize')
const db = {}
const sequelize = new Sequelize('dbname',
'username',
'password', {
host: 'localhost',
dialect: 'mysql',
logging: console.log,
freezeTableName: true,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
})
db.sequelize = sequelize
db.Sequelize = Sequelize
module.exports = db
Run Code Online (Sandbox Code Playgroud)
然后在您要使用的文件中:
const db = require('../database/db')
...
const newDbName = 'myNewDb'
db.sequelize.query(`CREATE DATABASE IF NOT EXISTS ${newDbName} `, {
type: db.sequelize.QueryTypes.CREATE
}).then( () => {
res.send('ok done creating ' + req.body.newDbName).end()
}).catch( err => {
res.status(500).send('Err executing command ' + err).end()
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3612 次 |
| 最近记录: |