【发布时间】:2018-06-10 16:29:41
【问题描述】:
我正在尝试使用节点从 SQL Server 数据库中获取数据。我可以通过运行函数建立连接并获取数据,但我想将函数转换为 API 端点。
根据错误,在我看来 res 变量没有传递到最后一个 if 语句中,但我没有看到问题。
当 Postman 对该地址使用 GET 方法时,我收到 res.send is not a function 错误。
let mssqlQuery = function(query, res) {
sql.connect(dbConfig, function(err) {
if (err) {
console.log("Error while connecting database :- " + err)
res.send(err)
} else {
let request = new sql.Request();
request.query(query, function(err, res) {
if (err) {
console.log("Error while querying database :- " + err)
res.send(err)
} else {
res.send(res) // res.send is not a function
}
})
}
})
}
// GET API
app.get("/api/address", function(req, res) {
var query = "select * from address"
mssqlQuery(query, res)
})
res 变量的范围是否不正确,或者我的方法可能完全错误?
【问题讨论】:
-
request.query()的内部res正在遮蔽函数的外部。改个名字就行了。 -
能发个sn-p代码吗?我想我尝试了你所说的,但仍然犯了一个错误。您指的是第 8 行和第 13 行吗?我编辑了问题以反映我对您评论的理解。
标签: node.js rest api express postman