Nodejs客户端对节点服务器的GET请求

时间:2020-02-13 11:28:11

标签: javascript html node.js

您好,我最近开始学习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)

我认为我的错误出在客户端函数的网址中。

1 个答案:

答案 0 :(得分:0)

您正在请求中传递queryparams,因此要获取这些数据,您需要编写

var username = req.query.user;
var password = req.query.pass;   

&不是params

并在从服务器端发送响应之前设置响应状态

res.status(200).send(recordset);