sequelize.js - 是否可以在不循环的情况下在 Sequelize 中的传入值前面添加一些东西?
问题描述
我正在使用 Sequelize 库。当我返回文件路径时,我需要在开头添加一组路径。我必须为此返回吗?
太糟了.. :'(
const getDatabase = await itemModel.findAll({
attributes: ['itemId', 'itemFilename', 'itemOriginalName']
})
let responseData = []
getDatabase.forEach(element => {
responseData.push({
itemId: element.itemId,
itemOriginalName: element.itemOriginalName,
itemFilename: `${process.env.SERVER}/getMyFiles/${reqAuth.userCompany}/items/${element.itemFilename}`
})
})
return responseData
解决方案
您可以在模型中添加 beforeFind 钩子:
// in your itemModel.js file
ItemModel.beforeFind((instance, options) => {
// set method does not save to db unless you tell instance.save()
instance.set('itemFilename', `${process.env.SERVER}/getMyFiles/${reqAuth.userCompany}/items/${instance.getDataValue('itemFilename')}`);
})
推荐阅读
- javascript - javascript window.open():强制为自定义文件类型打开窗口
- python - 如何检查共享内存是否存在?
- spring-boot - 如何在 Spring Boot 环境中获取服务器 IP 地址?
- ios - 为什么在调用 locationManager(manager:didChangeAuthorization) 后 authorisationStatus 具有相同的值?
- javascript - 无法使用 React 从 URL 将 id 设置为我的状态?
- angular - 是否有必要使用signInWIthPopup 使用firebase 向google 进行身份验证?
- ruby-on-rails - Ruby:未初始化的常量
- c# - 正则表达式以字符集开始和结束,但中间有不同的字符集
- javascript - 如何使用 Laravel Mix 在我的项目中添加 lodash debounce
- mysql - 如何将答案存储在又高又窄的 MySQL 表中