当前位置: 首页 > 面试题库 >

“ res.render”的作用是什么,html文件是什么样的?

阳昊
2023-03-14
问题内容

res.render什么,并且html文件是什么样的?

我的最终目标是将文本文件中的任意逗号分隔值加载到html文件中(例如)。我只能推断出一个视图是html文件,而回调将该html文件返回。

这是文档:http :
//expressjs.com/api.html#res.render。

现在,给出一些示例代码,我发现背景下,有一些关于使用ejs(嵌入的JavaScript)与<%%>

但是,如果我要补充的话,我只是没有能力,还是文档确实真的含糊不清,并假定读者了解所有内容?我该如何独自解决这个问题?是否有任何官方文档,以便我可以全面了解用法,优点和陷阱?

编辑1

我只想补充一点,就是我有一段时间学习node.js。是我还是一般文档真的含糊不清?除了上述糟糕的解释之外,没有参数或返回值的类型说明。

编辑2

让我在代码上方问您一些更具体的问题。

实际orders.ejs文件在中views/orders.ejs。此代码如何引用它?

HTML摘录:

<tbody>
  <% for(var i=0; i<orders.length; i++) {%>
     <tr>
       <td><%= orders[i].id %></td>
       <td><%= orders[i].amount %></td>
       <td><%= orders[i].time %></td>
     </tr>
     <% } %>

和js。请参阅/订单:

  // Define routes for simple SSJS web app. 
// Writes Coinbase orders to database.
var async   = require('async')
  , express = require('express')
  , fs      = require('fs')
  , http    = require('http')
  , https   = require('https')
  , db      = require('./models');

var app = express();
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('port', process.env.PORT || 8080);

// Render homepage (note trailing slash): example.com/
app.get('/', function(request, response) {
  var data = fs.readFileSync('index.html').toString();
  response.send(data);
});

// Render example.com/orders
app.get('/orders', function(request, response) {
  global.db.Order.findAll().success(function(orders) {
    var orders_json = [];
    orders.forEach(function(order) {
      orders_json.push({id: order.coinbase_id, amount: order.amount, time: order.time});
    });
    // Uses views/orders.ejs
    response.render("orders", {orders: orders_json});
  }).error(function(err) {
    console.log(err);
    response.send("error retrieving orders");
  });
});

// Hit this URL while on example.com/orders to refresh
app.get('/refresh_orders', function(request, response) {
  https.get("https://coinbase.com/api/v1/orders?api_key=" + process.env.COINBASE_API_KEY, function(res) {
    var body = '';
    res.on('data', function(chunk) {body += chunk;});
    res.on('end', function() {
      try {
        var orders_json = JSON.parse(body);
        if (orders_json.error) {
          response.send(orders_json.error);
          return;
        }
        // add each order asynchronously
        async.forEach(orders_json.orders, addOrder, function(err) {
          if (err) {
            console.log(err);
            response.send("error adding orders");
          } else {
            // orders added successfully
            response.redirect("/orders");
          }
        });
      } catch (error) {
        console.log(error);
        response.send("error parsing json");
      }
    });

    res.on('error', function(e) {
      console.log(e);
      response.send("error syncing orders");
    });
  });

});

// sync the database and start the server
db.sequelize.sync().complete(function(err) {
  if (err) {
    throw err;
  } else {
    http.createServer(app).listen(app.get('port'), function() {
      console.log("Listening on " + app.get('port'));
    });
  }
});

// add order to the database if it doesn't already exist
var addOrder = function(order_obj, callback) {
  var order = order_obj.order; // order json from coinbase
  if (order.status != "completed") {
    // only add completed orders
    callback();
  } else {
    var Order = global.db.Order;
    // find if order has already been added to our database
    Order.find({where: {coinbase_id: order.id}}).success(function(order_instance) {
      if (order_instance) {
        // order already exists, do nothing
        callback();
      } else {
        // build instance and save
          var new_order_instance = Order.build({
          coinbase_id: order.id,
          amount: order.total_btc.cents / 100000000, // convert satoshis to BTC
          time: order.created_at
        });
          new_order_instance.save().success(function() {
          callback();
        }).error(function(err) {
          callback(err);
        });
      }
    });
  }
};

问题答案:

res.render是做什么的,html文件是什么样的?

res.render()函数 将编译您的模板 (请不要使用ejs),在其中插入本地语言,并从这两件事中创建html输出。

回答 编辑2 部分。

// here you set that all templates are located in `/views` directory
app.set('views', __dirname + '/views');

// here you set that you're using `ejs` template engine, and the
// default extension is `ejs`
app.set('view engine', 'ejs');

// here you render `orders` template
response.render("orders", {orders: orders_json});

因此,模板路径为views/(第一部分)+ orders(第二部分)+ .ejs(第三部分)===views/orders.ejs

无论如何,express.js文档对它的功能很有帮助。它是API参考,而不是“如何使用node.js”书。



 类似资料:
  • 问题内容: 我已经使用谷歌搜索了很久了,但是没有结果。该PyInstaller手册说: 听起来很棒。我想将版本信息放入可执行文件中。问题是我不知道“版本文件”的外观,也找不到我可以使用的单个示例。我认为将版本文件的示例作为对此问题的可接受答案。 我尝试过的 该手册还说: 仅Windows NT家族 版本 。版本=’myversion.txt’。使用GrabVersion.py从可执行文件中窃取版本

  • 本文向大家介绍什么是数组,它的作用是什么?,包括了什么是数组,它的作用是什么?的使用技巧和注意事项,需要的朋友参考一下 数组是一个数据容器,其中包含固定长度的同类数据类型的元素。它用于存储相同数据类型的元素。 示例 输出结果

  • 本文向大家介绍什么是icmp协议,它的作用是什么?相关面试题,主要包含被问及什么是icmp协议,它的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:ICMP协议   它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

  • HTML是Hyper Text Markup Language的缩写,中文的意思是“超文本标记语言”,它是制作网页的标准语言。由于网页中不仅包含普通文本,还包含超文本,故被称作超文本描述语言。 那什么是超文本呢?所谓超文本,就是指图像、视频、动画、声音、表格、链接等多媒体的内容。 HTML是网页的基本描述语言,由Tim Berners-Lee在1990年提出,其目的是方便地把一台电脑中的文本或图形

  • 问题内容: JavaScript标记和HTML中CDATA的用途是什么? 问题答案: XML文档中的所有文本都将由解析器解析。 但是解析器将忽略CDATA节中的文本。 CDATA-(未分析)字符数据 术语CDATA用于XML解析器不应该解析的文本数据。 XML元素中的字符“ <”和“&”是非法的。 “ <”将产生错误,因为解析器将其解释为新元素的开始。 “&”将产生错误,因为解析器将其解释为字符实

  • Java中Object有一个方法: public native int hashcode(); (1)hashcode()方法的作用 hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。 当集合需要添加新的对象时,先调用这个对象的hashcode()方法,得到对应的hashcode值,实际上hashmap中会有一个table保存已经存进去