Я создаю простое веб-приложение, использующее функции узла js express и cloud firebase
У меня есть 2 конечные точки, 1. первая точка отображает форму (запрос GET) и 2. конечная точка POST, которая принимает данные формыпри отправке
по какой-то причине firebase пропускает имя функции в почтовом URL-адресе (вторая конечная точка) при отправке формы, но работает нормально на локальном экспресс-сервере
пример: если значение атрибута acion формы равно"check" и имя функции firebase - "helloWorld"
URL-адрес отправки формы должен быть "<default firebase pefix>/helloWorld/check"
, но вместо этого URL-адрес, на который она отправляет сообщение, равен "<default firebase pefix>/check"
.Имя функции firebase в URL пропускается.что дает мне функцию, не найденную в местоположении us-central и т. д.
Еще одна вещь, которую я заметил, это то, что я даю косую черту в качестве префикса для значения атрибута действия, такого как "action =" \ check ". firebase пропускает всю базовую ссылку идобавив из значения атрибута значение порта
я попытался обойти, установив статический абсолютный путь (путь после производства) к атрибуту действия формы.
Но я хочу, если это ошибка илия что-то упустил
<form action="check" method="POST"
<label for="uname"><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required>
<button type="submit">Login</button>
</form>
// action = "/ check" это пропускает общую базовую ссылку все вместе
const functions = require('firebase-functions');
const express = require('express')
const bodyparser = require('body-parser')
const app = express()
app.set('port',6000)
app.use(bodyparser.json())
app.use(bodyparser.urlencoded({extended:true}))
app.set('view engine', 'ejs');
app.get('/',(req,res)=>{
res.render('formfill')
})
// this below end point is supposed to get triggered on form submission.
// and it is working fine on local express server, but not on firebase functions
app.post('/check',(req,res)=>{
res.send(`you said ${req.body.uname}`)
})
exports.helloWorld = functions.https.onRequest(app);