Kesalahan (TIDAK DAPAT MENDAPATKAN/) saat menerapkan dengan node.js di Heroku

Saat ini saya sedang dalam tahap penerapan kode saya di Heroku. Saya telah menentukan rute berbeda di server.js yang saya beri nama script.js.

Ini kode backend saya:

const express = require('express');
const bodyParser = require('body-parser');
const bcrypt = require('bcrypt-nodejs');
const cors = require('cors');
const knex = require('knex');
const register = require('./controllers/register');
const signin = require('./controllers/signin');
const profile = require('./controllers/profile');
const image = require('./controllers/image');

const db = knex ({
  client: 'pg',
  connection: {
    connectionString: process.env.DATABASE_URL,
    ssl: true,
  }
});

const app = express();

app.use(bodyParser.json());
app.use(cors());

var distDir = __dirname + "/dist/";
app.use(express.static(distDir));

app.get('/', (req, res)=> {
    res.send('it is working!')
});

// ROUTE 1
// Dependency injection
app.post('/signin', (req, res) => {signin.handleSignin(req, res, db, bcrypt) })

// ROUTE 2
app.post('/register', (req, res) => {register.handleRegister(req, res, db, bcrypt) })

// ROUTE 3
app.get('/profile/:id', (req, res) => {profile.handleProfile(req, res, db) });

// ROUTE 4
app.put('/image', (req, res) => {image.handleImage(req, res, db) });
app.post('/imageurl', (req, res) => {image.handleApiCall(req, res) });


app.listen(process.env.PORT || 3000, ()=> {
    console.log(`app is running on port ${process.env.PORT}`);
})

Ketika saya menjalankan heroku open di cmd, itu menampilkan "berfungsi" seperti yang saya inginkan. namun untuk rute lain menunjukkan TIDAK DAPAT MENDAPATKAN/kesalahan. Saya juga menjalankan heroku logs --tail di cmd dan tidak menemukan kesalahan yang jelas. Aplikasi front-end berfungsi dengan benar. Mohon bantu saya

ini adalah rute pendaftaran. Saya kira saya telah membuat kesalahan yang sepertinya tidak dapat saya temukan

const handleRegister = (req, res, db, bcrypt) => {
  const { email, name, password } = req.body;
  if (!email || !name || !password) {
    return res.status(400).json('incorrect form submission');
  }
  const hash = bcrypt.hashSync(password);
    db.transaction(trx => {
      trx.insert({
        hash: hash,
        email: email
      })
      .into('login')
      .returning('email')
      .then(loginEmail => {
        return trx('users')
          .returning('*')
          .insert({
            email: loginEmail[0],
            name: name,
            joined: new Date()
          })
          .then(user => {
            res.json(user[0]);
          })
      })
      .then(trx.commit)
      .catch(trx.rollback)
    })
    .catch(err => res.status(400).json('unable to register'))
}

module.exports = {
  handleRegister: handleRegister
};

person Gbolade    schedule 26.04.2020    source sumber
comment
Anda hanya memiliki dua rute GET di aplikasi Anda. jika Anda mencoba mengakses apa pun selain keduanya sebagai permintaan GET, itu akan menampilkan kesalahan CANNOT GET/.   -  person Sachin Kammar    schedule 26.04.2020
comment
Ahhh, terima kasih. Saya mencoba profile/:id dan mendapat tanggapan. Tolong ada saran tentang bagaimana cara menangani permintaan posting?   -  person Gbolade    schedule 26.04.2020
comment
Anda dapat menggunakan tukang pos untuk menguji permintaan Anda.   -  person Sachin Kammar    schedule 26.04.2020
comment
Terima kasih banyak Kammar, saya akan melakukannya   -  person Gbolade    schedule 26.04.2020
comment
Kammar, saya telah menambahkan kode untuk rute pendaftaran di atas, Ketika saya mencoba tukang pos menggunakan metode posting, hasilnya tidak dapat mendaftar yang merupakan balasan atas kesalahan tetapi saya tidak melihat kesalahan di log heroku   -  person Gbolade    schedule 26.04.2020


Jawaban (1)


Terima kasih Sachin Kammar telah membantu. Saya menemukan masalahnya ada pada sertifikat SSL. Saya menjalankan ini di script.js process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; saya dan semuanya bekerja dengan sempurna. Harap diperhatikan bahwa kode di atas memiliki masalah keamanan tetapi untuk tujuan pengembangan saja sudah cukup.

person Gbolade    schedule 26.04.2020