不知道代码问题出在哪里

做的一个heroku的文件。
大概的有这么几个文件
登录页面
登陆用的账户密码存储在json文件夹里,里面的账号才能使用




<!DOCTYPE html>
<html lang="en">
{{>head}}
<body>
  <h1 class="login-title">login page</h1>
  <div>
    <form action="/login" method="post" class="login-form">
      <div class="con">
        <header class="head-form">
          <h2>登陆</h2>
          <p>登 陆 </p>
        </header>
        <br />
        <div class="field-set">
          <input class="form-input" id="email" type="email" name="email" placeholder="Username" autofocus />
          <br />
          <input class="form-input" type="password" placeholder="Password" id="password" name="password" />
          <br />
          <button class="btn log-in">登陆</button>
        </div>
        <div class="other">
          {{#if message}}
          <label class="message">{{message}}</label>
          {{/if}}
        </div>
      </div>
    </form>
  </div>
</body>
</html>

显示页面,显示一些图片

<!DOCTYPE html>
<html lang="en">
{{>head}}
<body>
    <h1>mormal gallery</h1>
    <form action="/图片" method="post">
        <div class="main-container">
            <select name="myList" class="container">
                <option></option>
                {{#each data}}
                <option value="{{this.description}}">{{this.description}}</option>
                {{/each}}
            </select>
            <div class="presentation">
                {{#if main}}
                <a href="/gallery/{{main}}"><img src="/images/{{main}}.jpg" alt="Image not found"></a>
                {{else}}
                <img src="/images/1.jpg" alt="Image not found">
                {{/if}}
            </div>
            <br><br>
            <button type="submit" value="submit" name="submit" class="submit">Submit</button>
            <div class="label">{{label}}</div>
            <div class="logoutWrapper">
                <label for="loggedUser" id="loggedUser" name="loggedUser">Welcome, {{username}} !</label>
                <button type="submit" id="logout" name="logout" value="logout">Logout</button>
            </div>
        </div>
    </form>
</body>
</html>

app文件

const HTTP_PORT = process.env.PORT || 3000;
const express = require('express');
const exphbs = require('express-handlebars');
const path = require('path');
const bodyParser = require('body-parser');
const fs = require('fs');
const randomString = require('randomstring');
const session = require('client-sessions');
const app = express();
app.engine(
    'hbs',
    exphbs({
        extname: '.hbs',
        runtimeOptions: {
            allowProtoPropertiesByDefault: true,
            allowProtoMethodsByDefault: true
        },
        defaultLayout: false,
        layoutsDir: path.join(__dirname, '/views')
    })
);
app.get('/', (req, res) => {
    res.redirect('/login');
});

app.get('/login', (req, res) => {
    req.mySession.reset();
    Photo.updateMany({ status: 'S' }, { status: 'A' })
        .then((result) => {
            res.render('login', {
                message: false,
                title: 'Please Log in'
            });
            console.log('All photos are available');
        })
        .catch((err) => {
            console.log(err);
        });

});


app.get('/gallery', (req, res) => {
    if (req.mySession.user) {
        Photo.find({ status: 'A' })
            .sort({ description: 1 })
            .then((result) => {
        
                res.render('index', {
                    title: 'Gallery',
                    data: result,
                    label: '',
                    main: false,
                    username: req.mySession.user
                });
            })
            .catch((err) => {
                console.log(err);
            });
    } else {
        req.mySession.reset();
        res.redirect('/login');
    }
});

app.get('/gallery/:id', (req, res) => {
    const id = req.params.id;
    Photo.find({ description: id })
        .then((result) => {
            res.render('purchase', {
                data: result,
                title: 'Purchase'
            });
        })
        .catch((err) => {
            console.log(err);
        });
});

app.put('/gallery/:id', (req, res) => {
    const id = req.params.id;
    Photo.updateMany({ description: id }, { status: 'S' })
        .then((result) => {
            res.json({ redirect: '/gallery' });
        })
        .catch((err) => {
            console.log(err);
        });
});

app.post('/login', (req, res) => {
    let userEmail = req.body.email;
    let pass = req.body.password;
    fs.readFile('user.json', 'utf-8', (err, data) => {
        if (err) throw err;

        let confirmObject = JSON.parse(data);

        if (!confirmObject.hasOwnProperty(userEmail)) {
            res.render('login', {
                message: 'Not a registered username.'
            });
        } else if (confirmObject[userEmail] != pass) {
            res.render('login', {
                message: 'Invalid password.'
            });
        } else {
            delete req.body.password;
            req.mySession.user = userEmail;
            return res.redirect('/gallery');
        }
    });
});

剩下的打包之类文件不好放,总之我的跑不起来。
有没有人能告诉我为什么跑不起来,给一个成功的样本文件和截图么?

跑不起来报错是什么,日志截个图

报什么错,我看看,

在自己主机上跑,错误代码就是“Uncaught SyntaxError: Unexpected identifier”

我在heroku上爬出来是这样的
2021-07-09T06:45:55.598991+00:00 app[api]: Initial release by user user????
2021-07-09T06:45:55.598991+00:00 app[api]: Release v1 created by user user????
2021-07-09T06:45:55.788809+00:00 app[api]: Release v2 created by user user????
2021-07-09T06:45:55.788809+00:00 app[api]: Enable Logplex by user user????
2021-07-09T06:46:25.000000+00:00 app[api]: Build started by user user????
2021-07-09T06:46:43.763109+00:00 app[api]: Deploy d00906bb by user user????
2021-07-09T06:46:43.763109+00:00 app[api]: Release v3 created by user user????
2021-07-09T06:46:43.777061+00:00 app[api]: Scaled to web@1:Free by user user????
2021-07-09T06:46:44.000000+00:00 app[api]: Build succeeded
2021-07-09T06:46:48.182634+00:00 heroku[web.1]: Starting process with command node app.js
2021-07-09T06:46:51.996259+00:00 app[web.1]: Successfully connected to DB
2021-07-09T06:46:51.996652+00:00 app[web.1]: Listening on port 26334
2021-07-09T06:46:52.732037+00:00 heroku[web.1]: State changed from starting to up
2021-07-09T06:46:54.072700+00:00 heroku[router]: at=info method=GET path="/" host=tt1tt2.herokuapp.com request_id=c03cf16a-0cd9-48d5-8130-cdfb4333c48f fwd="216.209.30.248" dyno=web.1 connect=0ms service=23ms status=302 bytes=350 protocol=https
2021-07-09T06:46:54.112394+00:00 app[web.1]: ReferenceError: Photo is not defined
2021-07-09T06:46:54.112447+00:00 app[web.1]: at /app/app.js:50:2
2021-07-09T06:46:54.112448+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2021-07-09T06:46:54.112449+00:00 app[web.1]: at next (/app/node_modules/express/lib/router/route.js:137:13)
2021-07-09T06:46:54.112450+00:00 app[web.1]: at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
2021-07-09T06:46:54.112450+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2021-07-09T06:46:54.112451+00:00 app[web.1]: at /app/node_modules/express/lib/router/index.js:281:22
2021-07-09T06:46:54.112452+00:00 app[web.1]: at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
2021-07-09T06:46:54.112452+00:00 app[web.1]: at next (/app/node_modules/express/lib/router/index.js:275:10)
2021-07-09T06:46:54.112453+00:00 app[web.1]: at /app/app.js:41:2
2021-07-09T06:46:54.112453+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2021-07-09T06:46:54.116704+00:00 heroku[router]: at=info method=GET path="/login" host=tt1tt2.herokuapp.com request_id=029735f1-c418-4460-bbc6-0603a23da56e fwd="216.209.30.248" dyno=web.1 connect=0ms service=14ms status=500 bytes=696 protocol=https