【发布时间】:2022-01-25 20:07:18
【问题描述】:
我有与此类似的代码,我可以添加一个属性,但在这里它不是莫名其妙。
router.get('/', async (req, res, next) => {
let produtos = await produto.findAll();
for(let i = 0; i < produtos.length; i++){
console.log("entrou");
if(produtos[i].diretorioFotos != null)
{
fs.readdirSync('./publico/fotos/' + produtos[i].diretorioFotos).forEach(file => {
console.log("temtemtete");
const foto1 = 'http://localhost:3000/fotos/' + produtos[i].diretorioFotos + '/' + file;
produtos[i].foto1 = foto1; //the code does reach here
console.log( produtos[i]);
});
}
}
res.json(produtos); // json goes without the "foto1"
});
生成的json
[{"id":27,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"1","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:07:39.782Z","updatedAt":"2021-12-26T03:07:39.782Z"},{"id":28,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"2","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:09:47.696Z","updatedAt":"2021-12-26T03:09:47.696Z"},{"id":29,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"3","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:10:43.124Z","updatedAt":"2021-12-26T03:10:43.124Z"},{"id":30,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"4","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:11:12.579Z","updatedAt":"2021-12-26T03:11:12.579Z"},{"id":31,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"5","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:11:31.612Z","updatedAt":"2021-12-26T03:11:31.612Z"},{"id":32,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"6","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:12:29.874Z","updatedAt":"2021-12-26T03:12:29.874Z"},{"id":33,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"7","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:13:25.883Z","updatedAt":"2021-12-26T03:13:25.883Z"},{"id":34,"nome":"produto imagem ","descricao":"descrição muito descritiva","preco":"120000","diretorioFotos":"8","ean":null,"sku":"3434234","gtin":"4324234","mpn":"234234","ncm":"324234","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:15:13.790Z","updatedAt":"2021-12-26T03:15:13.790Z"},{"id":35,"nome":"ier2340932098","descricao":"descrição descritiva","preco":"190","diretorioFotos":"9","ean":null,"sku":"342343","gtin":"4234324","mpn":"234234","ncm":"32423432","peso":100,"altura":100,"largura":100,"comprimento":100,"linkVideo":null,"marca":null,"categoria":null,"createdAt":"2021-12-26T03:30:10.286Z","updatedAt":"2021-12-26T03:30:10.286Z"}]
就像我说的那样,我有一个渲染我使用的车把模板的路线我的代码非常相似,我确实可以工作。我试图看到一些差异,但它没有。
【问题讨论】:
-
findAll到底是什么 - 它是 Sequelize 还是其他 DAO lib 方法?我(有点疯狂)的猜测是,它实际上并没有返回一个对象数组,而是为您提供了一些 ORM 包装的集合;当您向此集合的元素添加属性时,该集合在序列化时会丢失。 -
console.log(produtos[i]); 是做什么的说
-
基本上说没有“foto1”...
-
所以
fs.readdirSync('./publico/fotos/' + produtos[i].diretorioFotos)应该是一个缓冲区,在forEach语句中尝试console.log(file)看看 -
我的另一段代码也不起作用......我的错误。我希望我的回答对其他人有所帮助。
标签: javascript node.js express