html – 使用Node.js提供动态网页

前端之家收集整理的这篇文章主要介绍了html – 使用Node.js提供动态网页前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很难理解node.js究竟是如何为动态内容提供服务的.
所以我们假设我们有以下代码来呈现主页:
  1. var express = require('express'),app = express();
  2.  
  3. app.get('/',function(req,res){
  4. res.render('home.html');
  5. });

但是,假设这个主页应该是一个用户配置文件,您在其中从数据库提取用户信息,从而产生代码

  1. var express = require('express'),mongoose = require('mongoose'),app = express();
  2.  
  3. mongoose.connect('mongodb://localhost/ExampleDB');
  4.  
  5. app.get('/:id',res){
  6. User.findOne({_id: req.id},function (err,user){
  7. var name = user.name;
  8. var profilePic_uri = user.profilePic_uri;
  9. res.render('home.html');
  10. });

因此,理想情况下,home.html只是一个模板页面,您可以在路径处理程序中设置用户的个人资料图片,他们的名字等.是的,因为节点背后的想法是,这个app.js应该能够处理在运行时从数据库提取动态内容.我遇到麻烦的地方是了解如何使用节点精确渲染动态页面. html页面是一个静态页面.你不能真正渲染一个PHP或一个asp页面,因为,这真的没有意义吗?

这让我想到了问题,它是如何完成的?

解决方法

如果你添加
  1. app.set('views',path.join(__dirname,'views'));
  2. app.set('view engine','jade');

…在app = express()完成后,如果不使用扩展,它现在将默认为Jade渲染引擎.然后在你的路由器:

  1. app.get('/',res){
  2. res.render('home',{
  3. var1: 'val1',var2: 'val2'
  4. });
  5. });

您需要将Jade添加到项目的依赖项中的package.json文件中:

  1. "jade": "~1.9.1",

…然后在你的文件夹中“npm install”将其带入.

然后你需要一个名为/views/home.jade的文件,内容如下:

  1. doctype html
  2. html
  3. body
  4. p Var1 is #{var1}
  5. p Var2 is #{var2}

您应该看到 – 当您访问主页时 – 这些值已经传递给Jade渲染引擎并分别在模板中作为“val1”和“val2”进行了扩展.

猜你在找的HTML相关文章