【问题标题】:Node express references error response is not defined节点 express 引用错误响应未定义
【发布时间】:2021-06-05 09:57:27
【问题描述】:
var _expressPackage = 要求(“快递”); var _bodyParserPackage = require("body-parser"); var _sqlPackage = 要求(“mssql”); //使用 express web 框架初始化应用程序 var app = _expressPackage(); //以json格式解析结果 app.use(_bodyParserPackage.json()); ***//这里我们要开启CORS,这样我们就可以跨域访问api了*** app.use(function (req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, contentType,Content- 类型, 接受、授权”); 下一个(); }); ***//让我们现在设置我们的本地服务器。*** var server = app.listen(process.env.PORT || 4000, function () { var port = server.address().port; console.log("App 正在端口上运行", port); }); ***//设置你的sql连接字符串,我这里用的是我自己的,你要替换成你的 自己的。*** var dbConfig = { 用户:“sa1”, 密码:“12345”, 服务器:“本地主机”, 数据库:“test123” }; ***//连接数据库并执行查询的函数*** var QueryToExecuteInDatabase = 函数(响应,strQuery){ ***//在创建连接之前关闭sql连接,否则会报错 连接已存在。*** _sqlPackage.close(); //现在连接你的sql连接 _sqlPackage.connect(dbConfig, function (error) { 如果(错误){ console.log("连接数据库时出错:-" + error); response.send(错误); } 别的 { ***//让我们为sql对象创建一个请求*** var request = new _sqlPackage.Request(); //查询在我们的数据库中运行 request.query(strQuery, function (error, responseResult) { 如果(错误){ console.log("连接数据库时出错:-" + error); response.send(错误); } 别的 { response.send(responseResult); } }); } }); } ***//获取API*** app.get("/StudentList", function(_req ,_res){ var Sqlquery = "select * from student1"; ***//tbl_studentdetails*** QueryToExecuteInDatabase(_res, Sqlquery); }); ***//调用存储过程*** var request = new _sqlPackage.Request(); ***//调用存储过程*** request.input('用户名', _sqlPackage.VarChar(50), 'admin'); request.input('密码', _sqlPackage.VarChar(50), 'admin@123'); request.execute('sp_CheckLogin', function (err, recordsets, returnValue) { response.send(记录集); }); > (D:\performalytic\9999.practice\angularpra\NodeApiWithSql\node_modules\mssql\lib\tedious\request.js:701:23) 在 processImmediate (internal/timers.js:463:21) - 结束 sn-p -->

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    这个问题可以更清楚一点...但是由于提供的信息有限,您在这里遇到的问题似乎与词法范围有关。

    词法作用域最简单地与当前执行上下文可以访问的变量有关。在函数内部,您可以访问在函数中声明的变量......或在周围的代码中。被剪断的代码的最后一行显示了一个顶级变量 request 以及该对象上的一个名为 execute 的方法。

    您传递给execute 方法的回调具有三个变量(函数参数),您分别命名为errrecordsetsreturnValue。然而,在该函数体内,您正试图访问一个名为 response 的变量。如果我们查看周围的代码......没有声明response 变量。 (我看到的唯一名为 response 的变量在 QueryToExecuteInDatabase 内,因此只能在该函数体内访问。

    你从哪里得到这个模板代码?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-28
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多