gpt4 book ai didi

javascript - 将 JSON 传递给 Jade 并使用相同的数据进行 API 访问

转载 作者:行者123 更新时间:2023-11-30 00:09:25 24 4
gpt4 key购买 nike

我有以下代码作为模式模块:

router.get('/', function(req, res) {
Module.find(function (err, modules) {
if (!err) {
return res.json(modules);
} else {
res.statusCode = 500;

log.error('Internal error(%d): %s', res.statusCode, err.message);

return res.json({
error: 'Server error'
});
}
});
});

这对我的 API 来说工作正常,但我也在尝试使用这些数据将其加载到我的 Jade 模板中。

var modules = require('./routes/modules');

// home page
app.get('/', function(req, res) {
res.render('index', { modules: modules })
});

app.use('/api/modules', modules);

但这根本行不通,它给我 undefined 就好像它不存在一样(记录时)。

如果我将路由器修改为以下内容:

res.render('index', {
modules: modules
})

它可以很好地获取数据,但在通过我的 API 访问数据时却不行。

所以我的问题是,如何将这段特定的代码用于我的 API 并将其呈现给 Jade 模板。

最佳答案

您将模块用作中间件是不正确的。即

app.use('/api/modules', modules);

http://expressjs.com/en/guide/using-middleware.html 中所述,你的中间件应该调用 next() 函数。

app.use(function (req, res, next) {
console.log('Time:', Date.now());
next();
});

要解决这个问题,您应该定义类似于索引路由的路由,但您将使用 res.send。

var modules = require('./routes/modules');

// home page
app.get('/', function(req, res) {
res.render('index', { modules: modules })
});

app.get('/api/modules', function(req, res) {
res.send({ modules: modules })
});

关于javascript - 将 JSON 传递给 Jade 并使用相同的数据进行 API 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37127642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com