如和用jquery处理404页面

新手上路,请多包涵

在express生成的app.js中有这样一个处理函数:

app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});

使用模板渲染引擎渲染err.jade,并返回了一个json,而jade引擎可以自动将其解释为字符串,但是如果不使用jade模板渲染,而是使用

app.set('view engine', 'html');
app.engine('.html',require('ejs').__express);
app.use(function(err, req, res, next) {
      res.status(err.status || 500);
      res.render('error.html', {
        message: err.message,
        error: {}
      });
    });

直接渲染html文件,如何在html里使用jquery获取 res.render() 发送的json,并处理?
刚学node,很多东西还不是很懂,常识性错误还请包涵。

阅读 5.2k
3 个回答

jquery?跟jquery没啥关系吧。

如果在ejs中,你想获取render函数中传的json对象,直接用local这个变量就行了

app.engine('.html',require('ejs').__express);
这个是说明这里使用‘ejs‘来作为模版引擎,然后修改文件后缀为’html‘,本质上还是ejs的模版引擎,完全可以在render的html文件里面渲染一个对象,你之前error怎么弄,现在在html里面还是怎么弄,唯一的差异就是ejs和jade的语法有点差异,这个要改一点。

jade自动帮你解释为字符串是因为它帮你转换了,用ejs的话自己转可以了,这些都是在后端完成的,渲染完毕后直接生成相应html。并不是在生成好的html中完成的,所以和jquery没关系啦。
如果你指的是jquery ajax操作的话,那是另一回事了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题