node.js - 使用 Node.js 和 Handlebars 显示 JSON 数据

标签 node.js handlebars.js nodes

我正在学习 Node.js,但在使用返回 json 显示用户名时遇到问题。这是我正在使用的:

app.js

const express = require('express');
const path = require('path');
const expressHbs  = require('express-handlebars');
const methodOverride  = require('method-override');
const bodyParser = require('body-parser');
const flash = require('connect-flash');
const moment = require('moment');
const session = require('express-session');
const passport = require('passport');

// global variables
    app.use(function(req, res, next) {
    res.locals.success_msg = req.flash('success_msg');
    res.locals.error_msg = req.flash('error_msg');
    res.locals.error = req.flash('error');
    // res.locals.user = **req.user** || null;
    res.locals.user = **JSON.stringify(req.user)** || null;
    next();
});

列表.hbs

在此页面上,我转储用户对象,如下所示:{{user}}

尝试了 JSON.stringify(req.user) 并得到了以下输出。

{"_id":"5a720ab7b09fed40ef0e0c96","uid":"3456","fname":"Brad","lname":"Jones","active":true,"accessLevel":3,"date":"2018-02-01T23:51:59.381Z"}

尝试了 req.user 并得到了以下输出。

{ _id: 5a720ab7b09fed40ef0e0c96, uid: '3456', fname: 'Brad', lname: 'Jones', active: true, accessLevel: 3, date: 2018-02-02T00:05:44.253Z } 

我尝试像这样访问该名称,但没有任何效果。

  • {{user.lname}}
  • {{user['lname']}}

这很有趣,在 list.hbs 中我可以通过 each 输出 fname。

{{#each user}}
    ({{fname}})
{{/each}}

请注意下面输出中的“()”,似乎有多个 user.fname

() () () (Brad) ()

为什么会这样?

更新

刚刚尝试过这个:

{{#each user}}
    ({{@index}} {{fname}})
{{/each}}

output this:
(0 ) (1 ) (2 ) (3 Brad) (4 )

有办法定位第四个值吗?

最佳答案

我发现问题了,模型与数据库列不匹配。

关于node.js - 使用 Node.js 和 Handlebars 显示 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573913/

相关文章:

node.js - 如何在另一个线程中创建 V8 对象,然后将其复制回 nodejs 范围?

ember.js - 链接插值 i18n

jQuery 事件不会在 Handlebars 模板上触发

tree - Antlr4 将新节点添加到树中

node.js - node.js 原生 mongodb 驱动程序在运行 db.command({aggregate : . ..}) 时返回 "not master"错误

javascript - 将 angular2 应用程序从本地 NodeJS 转换为网站

javascript - sails js 上的自定义和多语言消息错误如何解决

handlebars.js - 提前在建议末尾添加一条自定义行

java - BST : Constructor Node in class. 节点无法应用于给定类型;

c - 即使使用 malloc 和 strcpy 时,多个节点值也都指向相同的值