这是使用node.js和jade打开文件并读取每一行的方法吗

Is this the way to open a file using node.js and jade and read each line?

本文关键字:读取 方法 一行 文件 node js jade      更新时间:2024-07-01

我对Node.js还很陌生,试图打开一个文件并读取每一行?

下面是代码,我们可以用ruby(html.erb)编写

<% File.open("/home/ubuntu/test.text", "r").each_line do |line| %>
  <p><%= line %></p> 
<% end %>

任何帮助都将不胜感激。

您可以读取一个文件并将其传递给Jade。如果要在Jade渲染器中读取文件,则读取必须是同步的,从而在读取完成之前阻止所有传入请求。因此,您应该异步读取文件:

app.get('/', function(req, res) {
  fs.readFile(file, function(err, data) {
    res.render('file.jade', {
      lines: data.split(''n')
    });
  });
});

然后在Jade中,您可以循环行阵列:

- for (var i = 0; i < lines.length; ++i) {
  li= lines[i]
- }

还有不同的循环方式:

each line in lines
    li= line
- lines.forEach(function(line) {
  li= line
- })

处理程序

node.js是单线程的,因此您必须使用异步函数来避免阻塞

app.get('/', function (req, res, next) {
    fs.readFile('readme.txt', 'utf8', function (err, content) {
        if (err) {
            return next(err);
        }
        res.render('view.jade', {
            lines : content.split(/'r?'n/)
        });
    });
})

视图.翡翠

body
    each s in lines
        p= s