gpt4 book ai didi

javascript - 通过javascript传递参数来表达node.js

转载 作者:搜寻专家 更新时间:2023-11-01 00:45:23 24 4
gpt4 key购买 nike

我正在使用 javascript、html、nodejs、express 和 mysql 从数据库中检索值并将其传回 html 。

在这里,用户在“btnSearch”文本框中输入域并按下加载按钮。 javascriot 调用 app.js 中的/getallusers 代码。此函数应访问数据库并返回结果。

我面临的问题是:我无法将“btnSearch”中的值传递给 app.js。如果我在 html 中包含标签,则请求不会转到/getallusers 。而是转到/hi.html?input=Music 。所以我没有使用标签。

html页面如下:
var xmlDoc = null ;

function load() {
var str = document.getElementById('btnSearch');
alert(str);
if (typeof window.ActiveXObject != 'undefined' ) {
xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
xmlDoc.onreadystatechange = process ;
}
else {
xmlDoc = new XMLHttpRequest();
xmlDoc.onload = process ;
}
xmlDoc.open( "GET", "/getallusers?input="+str, true );
xmlDoc.send( null );
}

function process() {
if ( xmlDoc.readyState != 4 ) return ;
document.getElementById("output").value = xmlDoc.responseText ;
}
}</script><body>
<input type="text" name="input" id="btnSearch" />
<textarea id="output" cols='70' rows='40'><empty></textarea>
<br></br>
<button onclick="load()">Load</button>
<button onclick="empty()">Clear</button>
</body>
</html>

我的 express 功能是:

    app.get('/getallusers', function (req, res) {
var input_domain=req.query.input;
console.log(input_domain);
connection.query('SELECT DBName FROM CrawlerDBInfo where Domain ='+"'"+input_domain+"'"+';', function (error, rows, fields) {
res.writeHead(200, {
'Content-Type': 'text/plain'
});
str = '';
for (i = 0; i < rows.length; i++)
str = str + rows[i].DBName + '\n';
res.end(str);
});
});

最佳答案

您可以在 node.js 应用程序中使用路由接受数据作为

app.get('/getallusers/:input', function (req, res) {
var input_domain=req.params.input;
console.log(input_domain);
connection.query('SELECT DBName FROM CrawlerDBInfo where Domain ='+"'"+input_domain+"'"+';', function (error, rows, fields) {
res.writeHead(200, {
'Content-Type': 'text/plain'
});
str = '';
for (i = 0; i < rows.length; i++)
str = str + rows[i].DBName + '\n';
res.end(str);
});
});

通过在路由中使用“:”,您可以指定参数。并从您在 UI 中的 javascript 发送 get 调用,参数为

localhost:3003/getallusers/inputdomainvalue

所以上面的路由会被执行。有关详细信息,请参阅 api

关于javascript - 通过javascript传递参数来表达node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20138437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com