nodejs+express+mongodb,如何通过 Ajax 读取数据,并在ejs中把数据显示出来
下面是我的代码:
router.get('/viewproject', function(req, res, next) {
projects.get(function(err, project) {
if (err) {
req.flash('error', "读取数据出错!");
return res.redirect('/');
}
req.flash('succeed', "项目信息");
res.render('viewproject', { projectsResult: project });
});
});
这里是可以反回数据到ejs模板的,但是在ejs模板里想通过 Ajax 来处理这个返回的数据就不行。
<script>
var a = <%= projectsResult %>
get_json();
function get_json(){
$.getJSON("json",
function(data) {
var hh = $.parseJSON(data.a);
$('#json').val(hh);
});
}
</script>
如果上面的代码有问题,那么要用什么方法才可以实现需求,谢谢!
7 回复
先单独请求看看,是不是正常,然后再使用ajax
@DevinXian 可以请求到数据的 这里我不知道怎么用ajax读取这个数据,返回的 projectsResult 不是 json 格式的?,如果不是要怎么转换
因为 ejs 会转义,所以
var a = <%= JSON.stringify(projectsResult) %> //就可以了
@zhaoxixiong 这个是需要序列化的,在后端或者页面上使用JSON.stringify
即可
@chenjiyong var a = “<%- projectsResult%>” 这样吧?
楼主为什么要这样来使用ajax呢?我一般是前端请求路径然后后端根据请求返回json然后前端再处理。。。你这样我感觉不是ajax是页面渲染的时候就把数据给传入了。
你这不是ajax吧,这只是从后台获取数据,然后直接渲染到页面上了。 自豪地采用 CNodeJS ionic