来自Wordpress API的基于快速路由的Json数据
我正在用Express、请求承诺模块和pug开发一个博客,使用wordpress API。我想根据wordpress的帖子得到路线 博客主页正在使用router index.js工作并呈现所有数据和帖子,如下所示:来自Wordpress API的基于快速路由的Json数据,wordpress,express,npm,headless,Wordpress,Express,Npm,Headless,我正在用Express、请求承诺模块和pug开发一个博客,使用wordpress API。我想根据wordpress的帖子得到路线 博客主页正在使用router index.js工作并呈现所有数据和帖子,如下所示: router.get('/blog', function(req, res, next) { rp({uri: 'http://www.example.com/wp-json/wp/v2/posts?_embed', json: true}) .then((response) =&
router.get('/blog', function(req, res, next) {
rp({uri: 'http://www.example.com/wp-json/wp/v2/posts?_embed', json:
true})
.then((response) => {
console.log(response);
res.render('blog', {
posts: response,
title: 'Blog',
});
})
.catch((err) => {
console.log(err);
});
});
因此,为了获得到posts端点的路由和特定调用,我想进行如下循环:
router.get('/blog/' + post.slug , function(req, res, next) {
rp({uri: 'http://www.example.com/wp-json/wp/v2/posts?slug=' + post.slug + '&_embed', json: true})
.then((response) => {
console.log(response);
res.render('blog/single', {
posts: response,
title: 'Blog:' + post.title.rendered,
});
})
.catch((err) => {
console.log(err);
});
});
最好的方法是什么
已解决:
应用程序不会根据Json响应生成所有可能的路由,而是评估url slug(expess的一部分方法)是否返回包含对象的Json响应。如果是,则将使用该slug呈现文章,如果来自wordpress的响应包含0个元素,则将显示404。由于链接的URL是从博客的主页生成的,基于之前对文章slug的json响应,我们已经知道所有链接都存在
router.get('/blog/:slug', function(req, res, next) {
var slug = req.params.slug;
rp({uri: 'http://www.example.com/wp-json/wp/v2/posts?slug=' + slug + '&_embed', json: true})
.then((response) => {
console.log(response);
if(response.length === 0){
res.render('404', {title: '404 Not found'});
} else {
res.render('blog/single', {
posts: response,
title: 'Blog | ' + response[0].acf.meta_title,
metaDesc: response[0].acf.meta_description
});
}
})
.catch((err) => {
console.log(err);
});
});
你的目标是什么?你想一次呈现一篇博文吗?总体结果是呈现一篇博文,但这部分只是基于每个博文的json slug创建路由。我创建的“单一”视图用于单独的渲染目的。