小编end*_*cat的帖子

获取ejs模板中的url参数

我试图基于URL参数创建一个ejs条件,例如,如果测试参数存在于localhost:3000/page?test,那么显示一个div,否则不显示它.

我的ejs模板看起来像:

<% include header %>
<div class="row">
<%if (title !== "homepage") {%>
<%= title %>
  <div>
    <% include nav %>
  </div>
<%}%>
  <div>
  </div>
</div>
<% include footer %>
Run Code Online (Sandbox Code Playgroud)

有没有办法直接从ejs文件访问URL参数?例如,<%= title%>工作正常,是否有类似<%= req.query%>的东西?

我也在使用快递.

javascript ejs node.js express

12
推荐指数
2
解决办法
2万
查看次数

了解函数(错误、数据)回调

所以我对 function(err, data) 回调的工作方式感到困惑,第一个参数总是错误处理程序吗?

如果你有函数 (x, y, z, a, b, c) 之类的东西,剩下的参数呢?

fs.readFile 中的数据如何从最上面一行代码传递到最下面一行代码?或者换句话说, fs.readFile 的输出如何放入 data 参数中?

fs.readFile(pathToFile, function (err, **data**) {
    bufferString = **data**.toString();
Run Code Online (Sandbox Code Playgroud)

我可以用函数 (x, y) 和函数 (x, y, z, a, b, c) 替换函数 (err, data)

但只有第二个参数有效(数据和 y),这只是 javascript 回调的语法吗?

例如,这是异步读取文件并打印给定文件的行数的工作代码:

var fs = require('fs');
var pathToFile = process.argv[2];
var bufferString, bufferStringSplit;

function counter(callback) {
  fs.readFile(pathToFile, function (err, data) {
    bufferString = data.toString();
    bufferStringSplit = bufferString.split('\n');
    callback();
  });
}

function logMyNumber() {
  console.log(bufferStringSplit.length-1);
}

counter(logMyNumber);
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous callback node.js

5
推荐指数
1
解决办法
2万
查看次数

使用fs.readFile的简单nodejs回调示例

我正在尝试学习异步编程,并且正在努力学习nodeschool.io的第4课,并实现了带回调的异步io.

基本上,我正在尝试使用fs.readFile来计算使用回调的文件中的换行符数.

这是我的代码:

var fs = require('fs');
var pathToFile = process.argv[2];

function counter(callback) {
    var buffer = fs.readFile(pathToFile, function (err, data) {
    var bufferString = buffer.toString();
    var bufferStringSplit = bufferString.split('\n');
  });
  callback();
}

function logMyNumber() {
  console.log(bufferStringSplit.length-1);
}

counter(logMyNumber);
Run Code Online (Sandbox Code Playgroud)

我知道一旦代码行完成执行就会执行回调,所以不应该执行

var bufferString = buffer.toString();
var bufferStringSplit = bufferString.split('\n');
Run Code Online (Sandbox Code Playgroud)

在fs.readFile()完成从磁盘读取文件后调用?

最后,callback()调用logMyNumber,它应该只输出文件所具有的行数.

javascript asynchronous callback node.js

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

javascript ×3

node.js ×3

asynchronous ×2

callback ×2

ejs ×1

express ×1