这些是我的代码。我想知道为什么我的第一个GET请求只能工作,而第二个不能?
我正在尝试从2个表中提取数据,但希望将它们呈现给2个不同字段的同一页面。
// GET ALL CATEGORIES
app.get("/company", function (req, res) {
db.Category.findAll({
attributes: ["categoryName"],
raw: true
}).then(function (data) {
// res.json(dbCategory);
var dbCategory = {
dbCategory: data
};
console.log(dbCategory);
res.render("companyPage", dbCategory);
});
});
// GET ALL MANUFACTURER
app.get("/company", function (req, res) {
db.Manufacturer.findAll({
attributes: ["manufacturerName"],
raw: true
}).then(function (data) {
var dbManufacturer = {
dbManufacturer: data
};
console.log(dbManufacturer);
res.render("companyPage", dbManufacturer);
});
});
答案 0 :(得分:1)
由于要定义相同的路线,因此可以更改第二条路线并相应地使用字段进行更新。
// GET ALL CATEGORIES
app.get("/company", function (req, res) {
db.Category.findAll({
attributes: ["categoryName"],
raw: true
}).then(function (data) {
// res.json(dbCategory);
var dbCategory = {
dbCategory: data
};
console.log(dbCategory);
res.render("companyPage", dbCategory);
});
});
// GET ALL MANUFACTURER
app.get("/company/manufacturer", function (req, res) {
db.Manufacturer.findAll({
attributes: ["manufacturerName"],
raw: true
}).then(function (data) {
var dbManufacturer = {
dbManufacturer: data
};
console.log(dbManufacturer);
res.render("companyPage", dbManufacturer);
});
});
答案 1 :(得分:1)
GET端点不起作用,因为您定义了相同的路由。 这个问题可以用
解决1。按照上述答案中的说明使用不同的路线
2。如果希望两个操作都在/ company上执行,则在单个GET端点下合并两个操作
检查示例代码以获取更多参考:
// GET ALL CATEGORIES
app.get("/company", function (req, res) {
db.Category.findAll({
attributes: ["categoryName"],
raw: true
}).then(function (dbCategory) {
// GET ALL MANUFACTURER
db.Manufacturer.findAll({
attributes: ["manufacturerName"],
raw: true
}).then(function (dbManufacturer) {
var dbStuff = {
dbCategory,
dbManufacturer,
msg: "Christmas Toy Store"
};
console.log(dbStuff);
res.render("companyPage", dbStuff);
});
});
});
答案 2 :(得分:0)
因为您获得了第一个路径“ / compagny”。
如果要使两个数据具有相同的路径,则应将所有数据都写在相同的get函数中。
尝试一下:
app.get("/company", async function (req, res) {
const dataCategory = db.Category.findAll({
attributes: ["categoryName"],
raw: true
});
const dataManufacturer = db.Manufacturer.findAll({
attributes: ["manufacturerName"],
raw: true
});
const [dbCategory, dbManufacturer] = await Promise.all([dataCategory,dataManufacturer]);
res.render("companyPage",{
dbCategory,
dbManufacturer
});
});