Javascript Node.js:fs.existsSync不';我不在Heroku工作

Javascript Node.js:fs.existsSync不';我不在Heroku工作,javascript,node.js,heroku,fs,Javascript,Node.js,Heroku,Fs,我有一个使用Node.js和Express的Heroku应用程序,我想确定某个文件是否存在。但是,似乎从未找到该文件。我有以下路径: app.get('/sims/:sim_name',(req,res)=>{ var simName=req.params.sim_name;//从URL获取请求的sim的名称 //如果存在,则渲染它 if(fs.existsSync(`pages/sims/${simName}.ejs`)) res.render(`pages/sims/${simName}`)

我有一个使用Node.js和Express的Heroku应用程序,我想确定某个文件是否存在。但是,似乎从未找到该文件。我有以下路径:

app.get('/sims/:sim_name',(req,res)=>{
var simName=req.params.sim_name;//从URL获取请求的sim的名称
//如果存在,则渲染它
if(fs.existsSync(`pages/sims/${simName}.ejs`))
res.render(`pages/sims/${simName}`);
//否则,显示错误消息
其他的
res.send(“对不起,您请求的页面不存在。”);
});
我的项目的目录结构如下所示:

.
├── Procfile
├── README.md
├── app.json
├── index.js
├── node_modules
│   ├── so many node_modues...
├── package-lock.json
├── package.json
├── public
│   ├── images
│   │   └── ...
│   ├── lang-logo.png
│   ├── node.svg
│   ├── scripts
│   │   └── ...
│   ├── stylesheets
│   │   ├── ...
│   └── test.html
├── test.js
└── views
    ├── pages
    │   ├── index.ejs
    │   ├── sims
    │   │   └── EField.ejs
    └── partials
        ├── header.ejs
        └── nav.ejs

我做错什么了?或者这是一个Heroku问题?

您无纪律的编码方式就像自找麻烦!在需要的地方开始使用花括号

这是更正后的脚本

if (fs.existsSync(`pages/sims/${simName}.ejs`)) 

   { res.render(`pages/sims/${simName}`);}

else
   { res.send("Sorry, the page you requested does not exist.");}

好的,我需要将
pages/sims/${simName}.ejs
更改为
views/pages/sims/${simName}.ejs

我以前尝试过
/views/pages/sims/${simName}.ejs
,但由于Heroku中的文件路径是如何工作的,所以没有成功


根据@UserToday的建议,我还添加了大括号(尽管这不是必需的)。

Heroku实际上不做“持久文件”,更糟糕的是:如果这是一个爱好dyno,当dyno进入睡眠状态时,你的内容会被重置。它只是重新启动原来的slug。所以:如果你需要持久存储,不要使用文件。添加一个免费的数据库或文件存储,并改用它。话虽如此:记下你在做什么。记录你试图访问的文件,然后在herokuapp.com上转到你的dyno,右上角,“更多…”打开控制台,看看你的文件发生了什么。@Mike'Pomax'Kamermans我试图查找的文件实际上是网站的一个永久页面,而不是网站本身创建的页面(如果你知道我的意思的话),所以我真的不明白为什么它不应该是持久的。@Mike'Pomax'Kamermans我只是试着使用控制台来查找我正在查找的页面,并运行
cd views/pages/sims&&ls
来显示我要呈现的文件EField.ejs。所以,它似乎是我认为它是,但我仍然无法访问它。但是,我尝试了一些
fs.existsSync('pages/sims/${simName}.ejs')
的变体,但仍然一无所获。请记住,要使路径完全限定<代码>页面/sims/…相对于什么?因此,您肯定需要一个
constfilepath=path.join(\uu dirname,…)
在其中,然后记录它以确保它确实是正确的路径。