node.js - node根据匹配路由拿到文章信息,怎么返回给前端页面

浏览:30日期:2022-09-27

问题描述

如果我在另一个页面按了跳转地址:http://localhost:3000/article...,我在node的contorll监听到了,查询数据库拿出他的数据。比如根据id拿到了文章title,然后我要把这个title返回到前端页面。

因为我页面不是用模板而是用了VUE拿到数据再渲染,所以不能直接渲染模板jade等。那么这个title怎么传、页面又怎么接?因为没有发出ajax请求啊,所以不知道怎么拿

补充:

app.get(’/article’,function(req, res) { var aId = req.query.id; //获取文章内容 select('SELECT * FROM article WHERE id='+aId+';').then(function(data) {res.json({article:data}); //这里我用了res.json()把数据返回出去,前端能收吗?? }).catch(function() {}) res.sendFile(’/public/html/article.html’,{root:__dirname+'/../'},function(err) {if(err) { console.log(err);}else { console.log('yes');} }); res.end();})

我在浏览器输入http://localhost:3000/article...,能取到了这个article.html页面了。

我问的问题就是 前端能取到我上面的 res.json({article:data}); 的数据吗??怎么取?或者我另一条思路就是存到res的请求体中(研究不深,不知道现在算不算写在响应体了),问题也是不知道怎么取这个响应体。

如果实在没办法,只能在初始化页面的时候用ajax吗。。。。

问题解答

回答1:

如果你的跳转地址是这样写的

<a href='https://www.6hehe.com/article'>跳转</a>

可以将点击这个跳转修改成触发一个ajax请求。

<a href='https://www.6hehe.com/wenda/getTitle()'>跳转</a>

js

function getTitle(){ var url = ’localhost:3000/article’; // 用ajax}

nodejs里的路由处理函数修改成

app.get(’/article’, function(req, res, next){ // 假设获取数据的数据为data var data; res.json(data);})

相关文章: