gpt4 book ai didi

node.js - 如何在 Express 环境中从 images 目录中获取随机图像

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:25 26 4
gpt4 key购买 nike

我想从图像目录中随机获取图像。但是,我当前的代码不起作用。如有任何帮助,我们将不胜感激!

var express = require('express');
var router = express.Router();
const fs = require('fs');

function getRandFile() {
const imageDir = '../public/images/';
fs.readdir(imageDir, (err, files) => {
files.forEach(file => {
//will add file name to an array and then return a random file name
});
})

}

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('./index.jade', { backgroundImage:getRandFile() });
});

module.exports = router;

我得到的错误是:

/Users/ron/Dropbox/dev/moments/routes/index.js:9
files.forEach(file => {
^

TypeError: Cannot read property 'forEach' of undefined
at fs.readdir (/Users/ron/Dropbox/dev/moments/routes/index.js:9:8)
at FSReqWrap.oncomplete (fs.js:111:15)

目录结构为:

/
/public
/images
| 1.jpg
| 2.jpg
| etc
/routes
| index.js <-- where I am calling the function getRandFile()

最佳答案

require 函数不同,fs.readdir(以及所有 fs 函数)相对于当前工作目录工作,不一定是当前脚本所在的目录。当前工作目录的位置取决于 Node 进程的启动方式。

如果您想访问相对于当前目录的文件,可以使用内置的 __dirname 全局变量,它始终包含当前正在执行的文件的路径。

var path = require('path')

const imageDir = path.resolve(__dirname, '../public/images/')

关于node.js - 如何在 Express 环境中从 images 目录中获取随机图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40812254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com