我在public class ParallelWalks {
ExecutorService executor = Executors.newCachedThreadPool();
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
public static void main(String[] args) {
new ParallelWalks().exec();
}
public ExecutorService executorSelector(Path path) {
if(isNetworkDrive(path)) {
return executor;
}else {
return singleThreadExecutor;
}
}
private boolean isNetworkDrive(Path path) {
// Here goes the logic to choose which path should go on a different
// thread.
return path.toString().contains("srv");
}
private void exec() {
Path path = Paths.get("/home/you/Desktop");
try (Stream<Path> files = Files.list(path)) {
files.forEach(this::taskRunner);
} catch (IOException e) {
// Do something with the exception
}
}
private void taskRunner(final Path path) {
executorSelector(path)
.submit(() -> doWalk(path));
}
private void doWalk(Path path) {
try (Stream<Path> paths = Files.walk(path)) {
paths.filter(Files::isRegularFile).forEach(System.out::println);
} catch (IOException e) {
// Do something with the exception
}
}
}
上运行我的react客户端,在localhost:3000
上运行我的express服务器,并且我的服务器中有一个包含图像的静态文件夹。
我试图将图像路径保存到MySQL数据库,并在React中将其用作img src,但在不对路径进行硬编码的情况下,无法弄清楚该如何做。例如,localhost:4000
可以工作,但是如果明天更改主机名,我的所有数据库数据都将变得无关紧要。
答案 0 :(得分:0)
三个答案:
在react中,您可以通过连接常量字符串和变量来填充道具。只需将/images/img1.jpg
而不是完整URL保存在数据库中。然后在反应中做<img src={'http://localhost:4000/' + imagePathFromDB} />
。当您更改服务器时,只需更改一次。
您可以创建一个简单的SQL查询来更新您的数据库以使其相关,这就是SQL数据库的优点。
例如
update images set path=replace(path,'localhost:4000','newdomain.com')
香草!
create-react-app
,则可以使用proxy parameter从同一域提供前端和后端。然后只需保存在数据库/myimage.jpg
和React <img src={myVariable} />