在加载数据之前,数据值呈现为 'name'
Data value is rendering as 'name' prior to the data being loaded
见下图。
提交搜索后,数据应呈现在搜索栏下方,搜索栏正在通过 ejs 加载,如下所示:
<div class="data">
<%= data %>
</div>
前几天,点击搜索后正在加载此数据,但是,现在在加载我的本地主机时,立即出现 'name' 字样。
当我在网页上进入我的源代码时,它显示为
<div class="data">
name
</div>
所以这一定是这个问题的来源。
我怎样才能停止呈现单词 name
,而只是在表单提交时加载数据?
编辑:
这是一些后端代码
app.get('/',(req,res)=>{
res.render('index',{
data: 'name'
})
})
app.post('/', async(req, res) => {
const whoissearch = new whoissearch()
try {
await whoissearch()
const url = req.body
let urlEncoded = decodeURIComponent(url.url);
await whoissearch.init();
const site = await whoissearch.open(urlEncoded)
site.on('error', console.error) // catch the errors
const results = await site.analyze()
const data = JSON.stringify(results, null, 2)
console.log(results.whois[0].name)
await whoissearch.destroy()
res.render('index', {
data: data
});
我已经追踪到错误来自这些行
app.get('/',(req,res)=>{
res.render('index',{
data: 'name'
})
})
不得不重置服务器。它似乎已自行修复。
这是处理异步代码和 API 时的典型问题。你应该研究称为“条件渲染”的概念来处理这个问题。
我有一段时间没有使用 ejs,如果语法不正确,请见谅。
你能试试吗:
<div class="data">
<%= data !== 'name' ? data : '' %>
</div>
您在这里看到的是您可以称之为“使用三元运算符进行动态渲染”的东西。
见下图。
提交搜索后,数据应呈现在搜索栏下方,搜索栏正在通过 ejs 加载,如下所示:
<div class="data">
<%= data %>
</div>
前几天,点击搜索后正在加载此数据,但是,现在在加载我的本地主机时,立即出现 'name' 字样。
当我在网页上进入我的源代码时,它显示为
<div class="data">
name
</div>
所以这一定是这个问题的来源。
我怎样才能停止呈现单词 name
,而只是在表单提交时加载数据?
编辑: 这是一些后端代码
app.get('/',(req,res)=>{
res.render('index',{
data: 'name'
})
})
app.post('/', async(req, res) => {
const whoissearch = new whoissearch()
try {
await whoissearch()
const url = req.body
let urlEncoded = decodeURIComponent(url.url);
await whoissearch.init();
const site = await whoissearch.open(urlEncoded)
site.on('error', console.error) // catch the errors
const results = await site.analyze()
const data = JSON.stringify(results, null, 2)
console.log(results.whois[0].name)
await whoissearch.destroy()
res.render('index', {
data: data
});
我已经追踪到错误来自这些行
app.get('/',(req,res)=>{
res.render('index',{
data: 'name'
})
})
不得不重置服务器。它似乎已自行修复。
这是处理异步代码和 API 时的典型问题。你应该研究称为“条件渲染”的概念来处理这个问题。
我有一段时间没有使用 ejs,如果语法不正确,请见谅。
你能试试吗:
<div class="data">
<%= data !== 'name' ? data : '' %>
</div>
您在这里看到的是您可以称之为“使用三元运算符进行动态渲染”的东西。