这是我第一次尝试使用Angular/Nodejs/Express从SQL Server获取信息。我尝试了几种不同的实现,结果似乎是一样的。这应该很简单,我在这里做错了什么?使用Postman,无论我使用哪条路由,它都会返回所有记录。/:id的路由也会返回所有记录,而不仅仅是一条记录。谢谢你的帮助!
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;
发布于 2017-07-27 14:17:03
注释掉您的router.get("/"....路由,然后点击接口,检查router.get("/:id"..是否实际命中可能是当你调用你的router.get("/"...调用而不是router.get(":id"....这就是返回所有数据的原因。然后检查一下为什么:id路由没有命中,因为:id路由永远不会返回所有数据,如果您的sql查询是ok的话。
https://stackoverflow.com/questions/45340070
复制相似问题