【发布时间】:2018-05-28 04:16:40
【问题描述】:
这太奇怪了。它记录了一个 db 对象,但 db.media.update 似乎永远不会返回,我无法在任何地方放置调试点,当我在那条线上放置调试点时,db 显示未定义
这是一个显示问题的截屏视频https://youtu.be/JXyuUbscPLQ
index.js
import fs from 'fs'
import path from 'path'
import Sequelize from 'sequelize'
import AppConfig from './../../config'
const basename = path.basename(__filename)
const env = process.env.NODE_ENV || 'develop'
const config = AppConfig.get('/db')
const db = {}
let sequelize
if (config.use_env_variable) {
sequelize = new Sequelize(
process.env[config.use_env_variable],
config
)
} else {
sequelize = new Sequelize(
config.database,
config.username,
config.password,
config
)
}
fs
.readdirSync(__dirname)
.filter(file => (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'))
.forEach((file) => {
const model = sequelize.import(path.join(__dirname, file))
db[model.name] = model
})
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db)
}
})
db.sequelize = sequelize
db.Sequelize = Sequelize
db.env = env
export default db
mediaGateway.js
import db from './../../db/models/index'
const mediaGateway = {
update: async (media) => {
const updatedMedia = await db.media.update(media, { where: { uuid: media.uuid } })
return updatedMedia
}
}
export default mediaGateway
这是控制台日志输出的内容,一个 db 对象。我知道这是一个 db 对象,因为我也 console.logged db.media 等
【问题讨论】:
-
update(values: Object, options: Object): Promise<Array<affectedCount, affectedRows>>promise 不返回更新的媒体,它返回数组。 -
问题不在于返回的内容,问题在于 db 未定义!但是它控制台.logs 为 db 的对象!而且...它似乎没有返回并点击下一个console.log...并且没有报告任何错误
-
你能声明
./../../db/models/index'的内容吗? -
确保更新以包括现在
-
还添加了一个截屏网址
标签: javascript node.js sequelize.js