我在这里问: node.js需要继承吗?
并被告知我可以通过省略var来将变量设置为全局范围.
这对我不起作用.
即:
_ = require('underscore');
Run Code Online (Sandbox Code Playgroud)
不能使_在所需文件上可用.我可以设置快递,app.set并在其他地方提供它.
有人可以确认这应该有用吗?谢谢.
我必须将一个函数传递给另一个函数,并将其作为回调执行.问题是有时这个函数是异步的,比如:
async function() {
// Some async actions
}
Run Code Online (Sandbox Code Playgroud)
所以我想执行await callback()或callback()取决于它接收的函数类型.
有没有办法知道函数的类型?
我知道全局变量很糟糕.
但是,如果我使用节点的模块"UTIL"在我的框架40个文件,是不是更好,只是声明它像一个全局变量:
util = require('util');
Run Code Online (Sandbox Code Playgroud)
在index.js文件而不是在40个文件中写入该行?
因为我经常在每个文件中使用相同的5-10模块,这将节省大量的时间,而不是复制粘贴所有的时间.
在这种情况下DRY不好吗?
我正在阅读第2章:this所有人现在都有意义!来自你不了解JS,并决定做这个实验.
我有这个简单的脚本foo.js:
var a = 'foo';
var output;
// lets find a way to output strings in both
// Chrome and Node.js
if (typeof alert === 'undefined') {
output = console.log;
} else {
output = alert;
}
function getA() {
return this.a;
}
var foo = getA();
output(foo);
Run Code Online (Sandbox Code Playgroud)
我期待以下事情getA()被称为:
getA在全局范围内,getA()将绑定到全局对象.var a在全局范围内声明,我认为全局对象将具有一个名为的属性a,并且此属性与变量相同a.this.a引用变量a.output(foo) …我想要一个变量,该变量可以保留上一次API调用中的值。也就是说,每次调用时/api,它将变量count加1,当调用时/value,它将显示count的值。所以如果我打了/api3次再打/value,,它应该打印3。
可能吗?要保持变量的值抛出多个API调用?我正在尝试避免访问文件和数据库,我敢肯定我可以使用这些文件和数据库。
我想在 node.js 中进行“变量共享”,但我找不到可行的方法来做到这一点。
我的目标是能够更改另一个文件中的变量。例如,我a在主文件中有,但在另一个文件(test.js)中执行某些操作后,a应该更改其在主文件中的值。是否可以实现以及如何实现?
我已经尝试过这段代码,但它似乎不起作用。
main.js
let a = 10;
module.exports.test = a;
console.log(a);
require('./test.js');
console.log(a);
Run Code Online (Sandbox Code Playgroud)
test.js
let b = require('./main.js').test;
b = 15;
Run Code Online (Sandbox Code Playgroud) 有一篇文章AsyncFunction - MDN上的JavaScript.它显示以下代码段:
new AsyncFunction([arg1[, arg2[, ...argN]],] functionBody)
Run Code Online (Sandbox Code Playgroud)
然而,在Mozzila Firefox 55和Google Chrome中,这个构造函数根本没有定义:
我发现(async function() {}).constructor确实如此AsyncFunction,但为什么我不能在全球范围内看到它呢?
javascript ×7
node.js ×7
async-await ×2
express ×2
ecmascript-6 ×1
module ×1
scope ×1
singleton ×1
standards ×1
v8 ×1
variables ×1