【问题标题】:Express.js: TypeError: Cannot read property 'toLowerCase' of undefinedExpress.js:TypeError:无法读取未定义的属性“toLowerCase”
【发布时间】:2018-10-23 00:01:30
【问题描述】:

我有一个正在运行的应用程序(可通过www.anelmad.com 访问)。它是一本双语词典。

我想实现这个功能:当输入像“axxam”这样的词时,字典会显示这个词的阴性形式,即“taxxamt”。我希望这个女性词成为一个链接,这样如果用户点击它,它就会以英文显示该词的含义。

我在我的 ejs 文件中对该功能进行了编码,但是当我单击链接时,它会显示: TypeError:无法读取未定义的属性“toLowerCase”

以下是应用程序的主要部分:

app.js:

app.get('/', function(req, res) {res.render('index')});
app.get('/searching', function(req, res, next){
var val = req.query.search;
var options= req.query.lang;
val = val.toLowerCase().trim();
var str;

display.ejs:这是我将女性词转换为 href 链接的行:

<%= grammatical[j].pos%></i>: (<i>unti:</i> <a href="/searching"><%=        
feminine %></a>,
asget:<%= grammatical[j].pl%>

最后,为了测试点击的链接是否返回一个字符串,我在 main.js 文件中放了一个 alert():

$(function(){
$("a").click(function(event) {
var href = $(this).text();
alert(href);

到目前为止,我尝试了 SO 上其他线程中给出的解决方案,但没有任何成功:我尝试过:

val= val.toString().toLowerCase().trim()
val= val.toString.toLowerCase().trim()
JSON.stringify(feminine)

最后,我想要的是将单词(在 href 链接中)作为输入发送到路由:/searching。

【问题讨论】:

    标签: express undefined typeerror


    【解决方案1】:

    "cannot read property "..." of undefined 通常意味着您调用该方法的变量为 null 或未定义,在您的情况下为 req.query.search。尝试在分配后放置一个断点以验证该 val不为空

    【讨论】:

    • 我不明白它怎么可能是未定义的!我提醒变量,它正确地给了我链接的文本。问题可能出在路由上吗?
    猜你喜欢
    • 2021-11-28
    • 2020-07-23
    • 2020-06-24
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2018-08-07
    相关资源
    最近更新 更多