Articles of 调用堆栈

RangeError:Node.js超出最大调用堆栈大小

我在JS中创build了模型脚本,所以我可以传入一个对象并添加一些逻辑和值。 我使用get / set来生成值,但是当我运行我的代码时,会引发超出RangeError:Maximum调用堆栈大小。 有谁知道谁来修复这个错误? var model = { get id() { return this.id ; }, set id(id) { this.id = id || ''; }, get filename(){ return this.filename ; }, set filename(name){ this.filename = name || ''; }, get savename(){ return this.savename ; }, set savename(name){ this.savename = name || ''; }, get filetype(){ […]

asynchronous/ Callstack混淆

好吧,我很确定我知道问题是什么,但我不能为了我的生活找出解决办法。 下面代码的工作方式是前端将两个字发回服务器,发生一些消毒,并将string分解成一个数组。 然后迭代该数组,为每个单词向Wordnik API提供asynchronous请求。 返回给客户端的结果数据结构是一个带有{word1: […synonyms], word2: […synonyms]} 。 用两个字,这个工作正是我想要4次5次。 第五次,第二个单词的同义词被应用到第一个单词,第二个单词没有数据。 显然,发送更多的话,数据混淆更频繁发生。 所以,我很确定这是一个调用堆栈问题,但我不知道如何解决它。 我一直在想,如果我把wordnikClient包在setTimeout(…,0)中; 这是朝着正确的方向迈出的一步,但感觉就像我误用了这个模式。 那里有什么智慧的话? 编辑: https : //github.com/ColinTheRobot/tweetsmithy-node/blob/master/server.js这是以前的版本,它具有相同的asynchronous问题。 我最初是用Promisedevise的,但是在过去的几天里,我意识到它没有做任何事情/我也可能误用了它,所以现在就把它拿出来。 app.get('/get-synonyms', (req, res) => { var tweetWords = sanitizeTweet(req.query.data); getDefs(tweetWords, res); }); var getDefs = function(tweetWords, res) { var i = 0; var serialized = {}; tweetWords.forEach((word) => { wordnikClient(word, (body) => { var […]

节点stream – 获得最大的调用堆栈超出

我似乎无法弄清楚为什么我得到这个错误与我的streampipe道。 我想我已经耗尽了所有的path,所以有什么我想念的东西:这是我有: var myCsvStream = fs.createReadStream('csv_files/myCSVFile.csv'); var csv = require('fast-csv'); var myData = []; var myFuncs = { parseCsvFile: function (filepath) { var csvStream; csvStream = csv .parse({headers: true, objectMode: true, trim: true}) .on('data', function (data) { myData.push(data); }) .on('end', function () { console.log('done parsing counties') }); return csvStream; } } myCsvStream .pipe(myFuncs.parseCsvFile()) .pipe(process.stdout); process.stdout就是这样,我可以看到,数据可以继续到下一个stream,但是,当添加pipe(process.stdout) […]

尝试了解更多关于Javascript -Node.jsasynchronous调用堆栈

如果我有以下代码: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/:name', function(req, res, next) { let name = req.params.name; setTimeout(()=>{ res.render('index', { title: name }); },18000); }); module.exports = router; 我打开浏览器并尝试在同一时间以多个不同的名称参数值请求此API,例如: localhost:3000 / param1,localhost:3000 / param2,localhost:3000 / param3 基于JavaScript调用堆栈的概念,为什么在setTimeOutcallback中的req.params.name每次请求都会得到相同的req.params.name值。 请检查截图。

什么是Node.js的默认堆栈大小?

我知道如何设置堆栈大小,这要归功于: 如何增加Node.js中的最大调用堆栈大小 但是,什么是默认大小? (即我如何到PHP的phpinfo() )等价

如何增加Node.js中的最大调用堆栈大小

这与其他有关Node中读取RangeError错误消息的其他问题是不同的:超出最大调用堆栈大小 ,我知道为什么我会收到此错误消息。 这是因为我正在recursion,实际上recursion了很多。 谢谢。