簡體   English   中英

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}.ejsviews/pages/sims/${simName}.ejs

我之前嘗試過/views/pages/sims/${simName}.ejs ,但由於文件路徑在 Heroku 中的工作方式,它不起作用。

根據@UserToday 的建議,我還添加了大括號(盡管這不是必需的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM