表达 ejs 形式发送未定义的值
express ejs form sending undefined value
我知道这可能是个愚蠢的问题,但我似乎无法解决这个问题。我正在尝试使用 Node、Express 和 Ejs 创建一个 url-shortner。但是我的 ejs 表单正在发送未定义的值。
这是我的 ejs:
<div>
<h2>Hello World!</h2>
<form action="/api/redirect" method="POST">
<label>Enter Url Please</label>
<input type="text" name="url" id="" value="<%= url.url %> ">
<button type="submit">Redirect</button>
</form>
这是我的路由器:
const express = require('express');
const URLs = require('../models/urls')
const router = express.Router();
router.get('/', (req,res) =>{
res.render("index", {url: new URLs()})
})
router.post('/redirect', (req,res) =>{
let url = req.body.url
console.log(`Value passed = ${url}`)
res.redirect(`http//${url}`)
})
module.exports = router;
这些是我遇到的错误:
任何帮助都会很棒,谢谢! c:
我猜你的 url
变量是 undefined
。这会导致您在浏览器中看到错误消息。可能是因为 req.body.url
没有定义。这可能有很多原因。也许您在错误的对象上查找 url
字段。或者您可能缺少一些首先使该字段可用的包,例如 body-parser.
此外,您在协议中缺少一个冒号:它需要说 http://${url}
而不是 http//${url}
.
最后,您似乎想要 重定向 到某些 URL,而不是呈现模板,在这种情况下您可能会调用 res.redirect
或一些等价物而不是 res.render
(我忘记了确切的 Express-API 规格)。
整行应该类似于:
res.redirect(`http://${url}`)
我知道这可能是个愚蠢的问题,但我似乎无法解决这个问题。我正在尝试使用 Node、Express 和 Ejs 创建一个 url-shortner。但是我的 ejs 表单正在发送未定义的值。
这是我的 ejs:
<div>
<h2>Hello World!</h2>
<form action="/api/redirect" method="POST">
<label>Enter Url Please</label>
<input type="text" name="url" id="" value="<%= url.url %> ">
<button type="submit">Redirect</button>
</form>
这是我的路由器:
const express = require('express');
const URLs = require('../models/urls')
const router = express.Router();
router.get('/', (req,res) =>{
res.render("index", {url: new URLs()})
})
router.post('/redirect', (req,res) =>{
let url = req.body.url
console.log(`Value passed = ${url}`)
res.redirect(`http//${url}`)
})
module.exports = router;
这些是我遇到的错误:
任何帮助都会很棒,谢谢! c:
我猜你的 url
变量是 undefined
。这会导致您在浏览器中看到错误消息。可能是因为 req.body.url
没有定义。这可能有很多原因。也许您在错误的对象上查找 url
字段。或者您可能缺少一些首先使该字段可用的包,例如 body-parser.
此外,您在协议中缺少一个冒号:它需要说 http://${url}
而不是 http//${url}
.
最后,您似乎想要 重定向 到某些 URL,而不是呈现模板,在这种情况下您可能会调用 res.redirect
或一些等价物而不是 res.render
(我忘记了确切的 Express-API 规格)。
整行应该类似于:
res.redirect(`http://${url}`)