Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 快速路由器:id_Javascript_Sql Server_Node.js_Express - Fatal编程技术网

Javascript 快速路由器:id

Javascript 快速路由器:id,javascript,sql-server,node.js,express,Javascript,Sql Server,Node.js,Express,这是我第一次尝试使用Angular/Nodejs/Express从SQL Server获取信息。我尝试了几种不同的实现,结果似乎是一样的。这应该很容易,我做错了什么?使用Postman,无论我使用哪条路线,它都会返回所有记录。/:id的路由也会返回所有记录,而不仅仅是一条记录。谢谢你的帮助 var express=require('express');//Web框架 var bodyParser=require('body-parser'); var sql=require('mssql');

这是我第一次尝试使用Angular/Nodejs/Express从SQL Server获取信息。我尝试了几种不同的实现,结果似乎是一样的。这应该很容易,我做错了什么?使用Postman,无论我使用哪条路线,它都会返回所有记录。/:id的路由也会返回所有记录,而不仅仅是一条记录。谢谢你的帮助

var express=require('express');//Web框架
var bodyParser=require('body-parser');
var sql=require('mssql');//MS Sql Server客户端
var-app=express();
app.use(bodyParser.json({
键入:“application/json”
}));
var router=express.router();
应用程序使用(“/api/images/”,路由器)
//CORS中间件
应用程序使用(功能(请求、恢复、下一步){
//启用CORS
res.header(“访问控制允许原点”、“*”);
res.header(“访问控制允许方法”、“GET、HEAD、OPTIONS、POST、PUT”);
res.header(“访问控制允许头”、“来源、X请求、内容类型、接受、授权”);
next();
});
var server=app.listen(process.env.PORT | | 8080,函数(){
var port=server.address().port;
log(“应用程序正在端口上运行”,端口);
});
//连接字符串参数。
var dbConfig={
用户:“sa”,
密码:“”,
服务器:“localhost\\SQLEXPRESS01”,
数据库:“ImageDB”
};
//函数连接到数据库并执行查询
var executeQuery=函数(res、query、next){
connect(dbConfig,函数(err){
如果(错误){
log(“连接数据库时出错:-”+err);
res.send(err);
}否则{
//创建请求对象
var request=new sql.request();
//对数据库的查询
request.query(查询,函数(err,rs){
如果(错误){
log(“查询数据库时出错:-”+err);
res.send(err);
}否则{
res.send(rs);
}
});
}
});
}
//获取API
路由器.get(“/:id”,函数(req,res){
var id=请求参数id;
var query=“从[TestTable]中选择*,其中ID=“+ID;
executeQuery(存储、查询);
});
路由器.get(“/”,函数(req,res){
var query=“从[TestTable]中选择*”;
executeQuery(存储、查询);
});

module.export=路由器注释掉你的路由器。get(“/”…route,然后点击api,检查路由器。get(“/:id”)。是否实际点击可能是在你调用路由器的api时。get(“/”…调用而不是路由器。get(:id)..路由这就是您返回所有数据的原因。然后检查:id路由未命中的原因,因为:id路由在sql查询正常的情况下将永远不会返回所有数据。

无关提示:永远不要直接将用户输入插入查询字符串,因为恶意用户输入将导致糟糕的日子。当我注释掉我的get(“/”)..route,我收到一个404错误。我很困惑,为什么一个有效,而另一个无效。查询语句很好,我可以在我的表上运行它,它返回我期望的结果。这意味着你的express应用程序找不到:id路由。显示你请求的url。或者,如果你可以将代码上载到github,我可能可以更好地帮助你。因此,你可以如果你点击了错误的url,你必须点击“localhost:8080/api/images/2”。问号用于查询字符串。根据你的api,你不需要输入查询字符串,在/api/images之后的任何值都将被视为你路线的id。希望你明白了,如果有帮助的话,别忘了竖起大拇指。竖起两个大拇指!非常感谢!这是tota我很高兴你帮我解决了这个问题。我可能只是坐在这里哭了一会儿