我试图基于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%>的东西?
我也在使用快递.
所以我对 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) 我正在尝试学习异步编程,并且正在努力学习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,它应该只输出文件所具有的行数.