您好,我最近开始学习node js。我有下面显示的代码,并且我想要的是html按钮来调用客户端功能,该功能在我的服务器站点功能中发出GET请求并返回结果。
客户站点
function login(userIn,passIn){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4) return;
if (xhr.status >= 200 && xhr.status < 300) {
const obj = JSON.parse(xhr.responseText);
console.log(obj);
}
else
console.log('error', xhr);
}
xhr.open('GET','/login?user='+userIn+'&pass='+passIn, false);
xhr.send();
}
服务器站点(login.js)
var express = require('express');
var app = express();
app.get('/login', function (req, res) {
var username = req.params.user;
var password = req.params.pass;
var sql = require("mssql");
// config for your database
var config = {
...
};
// connect to your database
sql.connect(config, function (err) {
if (err) console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query('select * from admins', function (err, recordset) {
if (err) console.log(err)
// send records as a response
res.send(recordset);
sql.close();
});
});
});
const webserver = app.listen(8080, function () {
console.log("running...");
});
目录
Project
node_modules
www
.html
client.js
login.js (server site function)
我认为我的错误出在客户端函数的网址中。
答案 0 :(得分:0)
您正在请求中传递queryparams,因此要获取这些数据,您需要编写
var username = req.query.user;
var password = req.query.pass;
&不是params
并在从服务器端发送响应之前设置响应状态
res.status(200).send(recordset);