molifenge / selfblog

Art-template+Express+MongoDB简单项目
1 stars 0 forks source link

文章管理页面渲染问题 #5

Open AcquireKnown opened 3 years ago

AcquireKnown commented 3 years ago

const { Article } = require("../../model/article"); module.exports = async (req, res) => { //标识当前的访问页面是文章管理页面 req.app.locals.currentLink = "article"; //查询所有文章数据 //多集合联合查询。链式调用populate方法 let articles = await Article.find().populate("author"); // res.send(articles); res.render("admin/article", { articles: articles, }); }; 提示的错误信息如下: SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse () at D:\blog\app.js:54:23 at Layer.handle_error (D:\blog\node_modules\express\lib\router\layer.js:71:5) at trim_prefix (D:\blog\node_modules\express\lib\router\index.js:315:13) at D:\blog\node_modules\express\lib\router\index.js:284:7 at Function.process_params (D:\blog\node_modules\express\lib\router\index.js:335:12) at next (D:\blog\node_modules\express\lib\router\index.js:275:10) at D:\blog\node_modules\express\lib\router\index.js:635:15 at IncomingMessage.next (D:\blog\node_modules\express\lib\router\index.js:260:14) at done (D:\blog\node_modules\express\lib\response.js:1007:25) at View.renderFile [as engine] (D:\blog\node_modules\express-art-template\src\index.js:18:9) at View.render (D:\blog\node_modules\express\lib\view.js:135:8) at tryRender (D:\blog\node_modules\express\lib\application.js:640:10) at Function.render (D:\blog\node_modules\express\lib\application.js:592:3) at ServerResponse.render (D:\blog\node_modules\express\lib\response.js:1012:7) at module.exports (D:\blog\route\admin\article.js:9:7) const { Article } = require("../../model/article"); module.exports = async (req, res) => { //标识当前的访问页面是文章管理页面 req.app.locals.currentLink = "article"; //查询所有文章数据 //多集合联合查询。链式调用populate方法 let articles = await Article.find().populate("author"); // res.send(articles); res.render("admin/article") }; 这样写就可以正常渲染页面,只要传递数据出去,模板渲染就提示上面的错误,这个原因是什么?用户页面基本一样的代码,但是可以正常渲染

AcquireKnown commented 3 years ago

const { Article } = require("../../model/article"); module.exports = async (req, res) => { //标识当前的访问页面是文章管理页面 req.app.locals.currentLink = "article"; //查询所有文章数据 //多集合联合查询。链式调用populate方法 let articles = await Article.find().populate("author"); // res.send(articles); res.render("admin/article", { articles: articles, }); }; 提示的错误信息如下: SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse () at D:\blog\app.js:54:23 at Layer.handle_error (D:\blog\node_modules\express\lib\router\layer.js:71:5) at trim_prefix (D:\blog\node_modules\express\lib\router\index.js:315:13) at D:\blog\node_modules\express\lib\router\index.js:284:7 at Function.process_params (D:\blog\node_modules\express\lib\router\index.js:335:12) at next (D:\blog\node_modules\express\lib\router\index.js:275:10) at D:\blog\node_modules\express\lib\router\index.js:635:15 at IncomingMessage.next (D:\blog\node_modules\express\lib\router\index.js:260:14) at done (D:\blog\node_modules\express\lib\response.js:1007:25) at View.renderFile [as engine] (D:\blog\node_modules\express-art-template\src\index.js:18:9) at View.render (D:\blog\node_modules\express\lib\view.js:135:8) at tryRender (D:\blog\node_modules\express\lib\application.js:640:10) at Function.render (D:\blog\node_modules\express\lib\application.js:592:3) at ServerResponse.render (D:\blog\node_modules\express\lib\response.js:1012:7) at module.exports (D:\blog\route\admin\article.js:9:7) const { Article } = require("../../model/article"); module.exports = async (req, res) => { //标识当前的访问页面是文章管理页面 req.app.locals.currentLink = "article"; //查询所有文章数据 //多集合联合查询。链式调用populate方法 let articles = await Article.find().populate("author"); // res.send(articles); res.render("admin/article") }; 这样写就可以正常渲染页面,只要传递数据出去,模板渲染就提示上面的错误,这个原因是什么?用户页面基本一样的代码,但是可以正常渲染

已经找到方法了, let articles = await Article.find().populate("author").lean();改这一个地方就正常了,不知道是为什么