Node.js 节点JS-获取“where”子句查询的请求引发错误

Node.js 节点JS-获取“where”子句查询的请求引发错误,node.js,express,Node.js,Express,正在尝试为单个员工行发出GET请求。但给出引用错误xxx的代码未定义 app.get('/employee/:sno',function (req,res) { mssqlConnection.query('select * from user_login where sno=?',[req.query.sno] ,(err,rows,fields)=>{ if(!err){ res.send(rows) }

正在尝试为单个员工行发出GET请求。但给出引用错误xxx的代码未定义


app.get('/employee/:sno',function (req,res) {
    mssqlConnection.query('select * from user_login where sno=?',[req.query.sno] ,(err,rows,fields)=>{
        if(!err){
            res.send(rows)
        }
        else{
            console.log(err)
        }
    })

})

ReferenceError: sno is not defined
    at C:\Users\harsh\WebstormProjects\untitled3\index.js:40:67
    at Layer.handle [as handle_request] (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\index.js:281:22
    at param (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\index.js:354:14)
    at param (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\index.js:365:14)
    at Function.process_params (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\index.js:410:3)
    at next (C:\Users\harsh\WebstormProjects\untitled3\node_modules\express\lib\router\index.js:275:10)

通过快速路由,您可以使用req.params.sno访问/employee/:sno的:sno部分

不是像您在问题中所做的那样req.query.sno


请参阅以供参考。

您的完整请求是什么?您已将sno设置为路径参数,但正在将其作为查询参数引用。jake,请您尝试详细说明一下。请参阅@Wyck的答案。我认为这里有两个不同的问题。1 req.params vs req.query和2 SQL查询中的非参数化问号语法。我相信。它给出了这种错误:node:20128 UnhandledPromisejectionWarning:RequestError:靠近“?”的语法不正确。我不是什么SQL专家,但它似乎在抱怨您的查询:从用户登录选择*其中sno=。。。特别是sno=?部分这是合法的语法吗?我不这么认为。你打算干什么?我不太懂SQL,但我希望你能构造一个参数化的查询,比如MSSQLSconnection.input'sno',SQL.VarChar,req.params.sno.query'select*from user_login,其中sno=@sno'我不知道这是否是正确的语法。@初学者请更新您的问题,以包括有关用于执行数据库查询的库的详细信息。您还应该包括一个如何发出请求的示例,因为不清楚您是打算使用路径参数还是查询参数。没有足够的细节让其他人提供简洁的答案。