【发布时间】:2021-07-26 08:38:14
【问题描述】:
我最近在使用 EJS 时遇到了这个奇怪的问题。 我正在尝试制作一个简单的自制网络图像服务器,一切顺利。我可以上传和存储图像,但无法检索。
我得到一个“image.forEach”不是函数错误,即使我设置为一个函数。
这里是后端:
//Routes
app.get('/', (req, res)=> {
imageUpload.find({}, (err, data)=> {
if(err) {
console.log(err)
res.status(500)
} else {
console.log('> ' + req.ip + " connected to: " + req.url)
res.render('index.ejs', {
title: 'Home :: Image Server',
version: settings.VERSION,
image: data
})
}
})
})
app.post('/upload', upload.single('img'), (req, res)=> {
const newImageUpload = new imageUpload({
img: {
data: fs.readFileSync(path.join(__dirname + '/uploads/' + req.file.filename)),
contentType: 'image/png'
}
})
newImageUpload.save((err, data)=> {
if(err) {
console.log(err)
res.status(500)
} else {
console.log('> Image succesfully uploaded.')
res.redirect('/')
}
})
})
app.get("/images/:id", (req, res)=> {
const id = req.params.id
imageUpload.findById(id, (err, data)=> {
if(err) {
console.log(err)
} else {
console.log('> ' + req.ip + " connected to: " + req.url)
res.render('image.ejs', {
title: 'Home :: Image Server',
image: data
})
}
})
})
我可以毫无问题地通过“/”路由将图像检索到索引,但在“/images/:id”路由上出现错误。
这里是“image.ejs”文件:
<!DOCTYPE html>
<html>
<head>
<%= title %>
</head>
<body>
<% image.forEach((image)=> { %>
<div>
<img src="data:image/<%=image.img.contentType%>;base64, <%=image.img.data.toString('base64')%>">
</div>
<% }) %>
</body>
</html>
我尝试使用 async 和 await,但无法加载路由。 如果有人可以帮助我,将不胜感激!
【问题讨论】:
标签: node.js mongodb express ejs multer