了解MEANJS.org HTML模板渲染

时间:2017-02-28 15:59:50

标签: html client-side serverside-rendering

MEANJS.org是渲染HTML服务器端还是通过客户端?

其视图引擎

/**
 * Configure view engine
 */
module.exports.initViewEngine = function (app) {
  app.engine('server.view.html', hbs.express4({
    extname: '.server.view.html'
  }));
  app.set('view engine', 'server.view.html');
  app.set('views', path.resolve('./'));
};

根据我对Express的理解,您是否为服务器端模板渲染设置了view engine

在同一个文件中再往下一点

/**
 * Configure the modules static routes
 */
module.exports.initModulesClientRoutes = function (app) {
  // Setting the app router and static folder
  app.use('/', express.static(path.resolve('./public'), { maxAge: 86400000 }));

  // Globbing static routing
  config.folders.client.forEach(function (staticPath) {
    app.use(staticPath, express.static(path.resolve('./' + staticPath)));
  });
};

根据我的理解,用于客户端资产。

还有这个,仅从评论中,我就相信它的所有服务器端呈现 - res.render() - 都是服务器端,对吗?

/**
 * Render the main application page
 */
exports.renderIndex = function (req, res) {
  var safeUserObject = null;
  if (req.user) {
    safeUserObject = {
      displayName: validator.escape(req.user.displayName),
      provider: validator.escape(req.user.provider),
      username: validator.escape(req.user.username),
      created: req.user.created.toString(),
      roles: req.user.roles,
      profileImageURL: req.user.profileImageURL,
      email: validator.escape(req.user.email),
      lastName: validator.escape(req.user.lastName),
      firstName: validator.escape(req.user.firstName),
      additionalProvidersData: req.user.additionalProvidersData
    };
  }

  res.render('modules/core/server/views/index', {
    user: JSON.stringify(safeUserObject),
    sharedConfig: JSON.stringify(config.shared)
  });
};

我只是想了解这里发生了什么......是服务器端还是客户端还是两者兼而有之?

更新1(3/2/17) 我想我现在意识到发生了什么。似乎MEANJS.org使用服务器端身份验证(会话等)为用户帐户提供身份验证。它还没有更新到使用基于令牌的身份验证......或者根据我的理解,也就是客户端身份验证...这些日子似乎越来越受欢迎。

0 个答案:

没有答案