通过java脚本传递参数来expressionnode.js
我正在使用javascript,html,nodejs,express和mysql从数据库检索值并将其传回给html。
在这里,用户在'btnSearch'文本框中input一个域,并按下Loadbutton。 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>
我的expressionfunction是:
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); }); });
通过在你的路由中使用“:”你可以指定参数。 并从你的JavaScript的UI你发送与调用参数为
localhost:3003/getallusers/inputdomainvalue
所以上述路线将被执行。 欲了解更多信息,请参阅API
- 如何防止由mongodb支持的分布式nodejs web服务器体系结构中的竞争条件
- msnodesql模块在编译期间出错
- 如何使用Passport保护路线终点?
- 单页面应用程序,http或websockets,连接/expression完成?
- 在Node.js / Express中,如何自动将这个头添加到每个“渲染”响应?
- 在Express / Node服务器上通过HTTP POST接收wavaudio文件
- 如何从NodeJs / express / mongoose中的对象中删除项目?
- 在expressjs中更改res.redirect的url
- 如何在WebStorm 10中通过Gulpfiledebugging由nodemon启动的快速应用程序?