Node.js:fs.existsSync 不适用于 Heroku
Node.js: fs.existsSync doesn't work on Heroku
我有一个使用 Node.js 和 Express 的 Heroku 应用程序,我想确定某个文件是否存在。但是,似乎从未找到该文件。我有以下路径:
app.get('/sims/:sim_name', (req, res) => {
var simName = req.params.sim_name; // get the name of the requested sim from the URL
// if it exists, render it
if (fs.existsSync(`pages/sims/${simName}.ejs`))
res.render(`pages/sims/${simName}`);
// otherwise, show an error message
else
res.send("Sorry, the page you requested does not exist.");
});
我的项目的目录结构是这样的:
.
├── 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 的建议添加了大括号(尽管这不是必需的)。
我有一个使用 Node.js 和 Express 的 Heroku 应用程序,我想确定某个文件是否存在。但是,似乎从未找到该文件。我有以下路径:
app.get('/sims/:sim_name', (req, res) => {
var simName = req.params.sim_name; // get the name of the requested sim from the URL
// if it exists, render it
if (fs.existsSync(`pages/sims/${simName}.ejs`))
res.render(`pages/sims/${simName}`);
// otherwise, show an error message
else
res.send("Sorry, the page you requested does not exist.");
});
我的项目的目录结构是这样的:
.
├── 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 的建议添加了大括号(尽管这不是必需的)。