return res.redirect('signup.html')
redirect(url)
Вы перенаправляете пользователя на маршрут, поэтому вам нужно передать URL. например:
redirect("/myPage")
Чтобы показать эту конечную точку клиенту, у вас уже должна быть определена эта конечная точка. Но похоже, что вы хотите отправить документ html вместо перенаправления пользователя на другой маршрут. поэтому у вас должно быть:
res.sendFile("signup.html")
Как только вы напишите этот код, express автоматически найдет папку stati c. поэтому вы уже должны были указать express расположение общедоступных файлов. тогда express будет go внутри папки publi c и внутри папки publi c искать регистрацию. html и отправлять ее.
Вот как вы информируете express о состоянии c расположение файлов.
app.use(express.static('public'))
Это означает, что файлы в папке "publi c", находящиеся в каталоге root, являются общедоступными.
Поскольку express.static
является функция промежуточного программного обеспечения, она должна быть размещена перед маршрутами. Потому что в этой ситуации
router.get("/myPage",(req,res)=>{
res.sendFile("signup.html")})
app.use(express.static('public'))
при обращении клиента к конечной точке ", myPage", поскольку эта конечная точка не знает о местонахождении папки publi c, ваше приложение выдаст ошибку.
этот код, который вы поместили, имеет другое назначение:
router.post('/register, (req, res, next) => {
res.redirect('signin.html')
//also tried ../public/signin.html
//also tried sendFile but it unable to load css file
})
router.post означает отправку запроса POST в "/ register". Запрос на публикацию - это когда клиент отправляет некоторые данные или отправляет форму конечной точке. Но посещение веб-сайта является запросом GET. Поэтому, если вы хотите отобразить что-то для пользователя, вам нужно использовать router.get()
.