【发布时间】:2020-07-17 02:37:07
【问题描述】:
我是 Sequelize 的新手。
我正在尝试创建一个处理程序来获取我的数据库中的所有播放列表。
这就是我想做的:
- 如果有查询字符串,则应根据该查询返回结果。
- 如果没有传递查询字符串,那么它应该返回我所有的播放列表。
这是我的播放列表模型:
const Playlist = db.define("playlist", {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
},
name: {
type: Sequelize.STRING,
unique: true,
},
});
这是我的处理程序:
exports.getPlaylists = async (req, res) => {
try {
const { name } = req.query;
console.log(name); // this prints the name
const result = await Playlist.findAll({
where: {
name:
name === undefined ? {} : { $like: `%${name}%` },
},
});
if (result) {
res.status(200).send(result);
} else {
response.status(404).send("No Playlists found");
}
} catch (error) {
res.status(500).send(`Internal server error: ${error}`);
}
};
如果我在查询中传递了一个名称,这会很好。但如果我没有传递任何查询字符串。它返回一个空数组。
$like 是Sequelize.Op.like 的别名
我应该放什么来代替空对象?
我检查了这个问题How get all data if field in query string is empty Node and Sequelize with Postgres,但建议的解决方案对我不起作用
【问题讨论】:
标签: node.js express sequelize.js