Express Router:id

这是我第一次尝试使用Angular / Nodejs / Express从SQL Server获取信息。 我已经尝试了几个不同的实现,结果似乎是相同的。 这应该很容易,我在这里做错了什么? 使用邮差,无论我使用哪条路线,它都会返回所有logging。 /:id的path也会带回所有logging,而不仅仅是一个。 谢谢你的帮助!

var express = require('express'); // Web Framework var bodyParser = require('body-parser'); var sql = require('mssql'); // MS Sql Server client var app = express(); app.use(bodyParser.json({ type: 'application/json' })); var router = express.Router(); app.use("/api/images/", router) //CORS Middleware app.use(function(req, res, next) { //Enabling CORS 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-Type, Accept, Authorization"); next(); }); var server = app.listen(process.env.PORT || 8080, function() { var port = server.address().port; console.log("App now running on port", port); }); // Connection string parameters. var dbConfig = { user: 'sa', password: '', server: 'localhost\\SQLEXPRESS01', database: 'ImageDB' }; //Function to connect to database and execute query var executeQuery = function(res, query, next) { sql.connect(dbConfig, function(err) { if (err) { console.log("Error while connecting database :- " + err); res.send(err); } else { // create Request object var request = new sql.Request(); // query to the database request.query(query, function(err, rs) { if (err) { console.log("Error while querying database :- " + err); res.send(err); } else { res.send(rs); } }); } }); } //GET API router.get("/:id", function(req, res) { var id = req.params.id; var query = "select * from [TestTable] where ID = " + id; executeQuery(res, query); }); router.get("/", function(req, res) { var query = "select * from [TestTable]"; executeQuery(res, query); }); module.export = router; 

注释掉你的router.get(“/”…. route,然后点击api,并检查router.get(“/:id”..是否实际上是否有可能是你调用api时你的路由器.get(“/”…调用而不是router.get(“:id”….路由这就是为什么你要返回所有的数据。然后检查为什么你的:ID路由不命中,因为:ID如果你的SQL查询没问题,路由将永远不会返回所有的数据。