Articles of node.js

抛出exception杀死线程在节点JS?

因为我知道节点js是单线程的,所以如果我写 throw new Error() 在方法的某处,它应该杀死当前的线程,那么会closures整个过程?

Selenium&webdriver.io如何使用executeScript?

我试图用Selenium,W​​ebDriver.io和Node.js(用Mocha)来testing一个简单的表单。 所以我有这样的东西: var webdriverio = require('webdriverio'); var expect = require('expect'); describe('Test form', function(){ beforeEach(function() { browser.url('/'); }); it('should save object', function() { expect(browser.executeScript('return window.data;')).to.be([]); }); afterEach(function() { if (this.currentTest.state !== "passed") { browser.saveScreenshot(); } }); }); 我的wdio.conf.js : var selenium = require('selenium-standalone'); var seleniumServer; exports.config = { host: '127.0.0.1', port: 4444, specs: [ 'test/*.spec.js' ], […]

Node.JS – 设置max-old-space-size的副作用太大?

我们的服务器在云PaaS(特别是Bluemix)上运行Node.JS。 我们可以通过PaaS控制面板configuration分配的内存量,但我注意到,对于大于1.4GB的值,您还需要使用–max-old-space-size选项执行节点( 此处解释)。 这意味着,只要我想改变分配的内存大小,我必须在设置中的两个地方进行更改。 如果我调用node –max-old-space-size 99999999999 app.js会发生什么情况? Node.JS会尝试分配99999999999MB,还是会考虑运行VM \ Container的实际内存限制? 它是否会影响GC的行为(即,如果看起来有很多可用空间,则GC将运行较less的次数)? 是否有–max-old-space-size use-machine-limits选项? 谢谢

在TypeScript中编码时,生成的.js文件将被提交给git?

使用TypeScript编写node.js应用程序时,处理生成的.js文件的build议方法是什么? 我应该将生成的.js文件添加到.gitignore并仅提​​交.ts文件,还是可以提交.ts文件和生成的.js文件?

检查是否在节点运行程序时给出ARGV

在节点上运行程序时: node test.js 如何在运行node test.js –example时检查程序是否被赋予ARGV node test.js –example ? 我到目前为止所尝试的是以下内容: function say(input){ console.log(input); } if(process.argv[1] !== '') { say('false'); } else { say('success'); } if(process.argv[1] === null) { say('false'); } else { say('success'); } 然而,第一个解决scheme不会输出else ,第二个解决scheme只输出NUL is not defined这样NUL is not defined所以我在想我在编码时犯了一些错误?

用node.js打印日文字符

我有一个电报机器人需要一个string(日文或西class牙文),并翻译它使用谷歌翻译的刮板(这一个https://github.com/statickidz/node-google-translate-free )。 我在Mac上testing过,工作正常。 但是当我试图将其部署在我的VPS(Debian 8.3)上时,它不会返回日文字符。 我在电报和terminal上得到的是: ɂ” 必须是一个charcode失败,但似乎在双方的UTF-8 … UPDATE 我输出的代码是这样的: sakura.onText(/\/esp (.+)/, function (msg, match) { var fromId = msg.from.id; var input = match[1]; translate({ text: input, source: 'es', target: 'ja' }, function(result) { sakura.sendMessage(fromId, "'" + input + "', traducido, significa '" + result + "'."); }); }); 我已经testing了Debian的日语locales 。 Linux输出是日语,但不是我的机器人的输出。

承诺解决后调用函数,但Jasmine不通过testing。 为什么?

我的应用程序使用一个服务,返回一个通常依赖于一大堆其他承诺的承诺。 我已经将这个重构成单独的命名函数,使testing(和可读性)更容易。 所以在这种情况下,我只想testing一下run函数是否完成了它的工作并调用其他函数。 例如 run() { return myService .connection .then(this.namedFunction1) .then(this.namedFunction2) .then(this.namedFunction3) .catch((error) => { console.log("doh!", error.stack); }); 当我testingnamedFunction1被称为茉莉花失败时,尽pipe事实并非如此。 下面是我为保持简单而编写的一个小代码示例: getString() { return Promise.resolve("Heeeelp. Heeeelp!!"); } printToConsole(string) { console.log(string); // This works! but Jasmine says nay 🙁 } myFunction() { this.getString() .then(this.printToConsole) .catch((error) => { console.log("Some error occurred", error); }); } …和testing: it("should call the […]

通过_idfindmongoose

我有一个简单的findById与mongoose的麻烦。 确认该项目存在于数据库中 db.getCollection('stories').find({_id:'572f16439c0d3ffe0bc084a4'}) mongoose Story.findById(topic.storyId, function(err, res) { logger.info("res", res); assert.isNotNull(res); }); 不会find它。 我也尝试转换到mongoId,仍然无法find(即使mongoose应该为你做这个) var mid = mongoose.Types.ObjectId(storyId); let story = await Story.findOne({_id: mid}).exec(); 我实际上是用这个打字稿,所以等待。 我也尝试了Story.findById(id)方法,仍然无法find。 是否有一些简单的_id字段查找项目? _id必须在Schema中吗? (文档说不) 我可以通过架构中的其他值find,只是_id不能使用… 更新:我写了一个简短的testing。 describe("StoryConvert", function() { it("should read a list of topics", async function test() { let topics = await Topic.find({}); for (let i = 0; i […]

readFileSync不是一个函数

嗨,我是相对较新的节点js和环顾四周,但无法find解决scheme。 我没有检查require JavaScript文件,它似乎没有“readFileSync”的方法。 也许我没有一个正确的需求文件? 我很难find这个文件,到处都在讨论这个文件,但是大多数人没有发布到哪里去。 我安装了节点js并具有require.js文件。 我目前的代码是这样的: fs = require(['require'], function (foo) { //foo is now loaded. }); console.log("\n *STARTING* \n"); // Get content from file var contents = fs.readFileSync("sliderImages", 'utf8'); 我刚开始有点需要工作,但似乎加载了需要的javacscript文件。 我一直在跟随指南,我不知道为什么我得到这个错误: Uncaught TypeError:fs.​​readFileSync不是一个函数 我已经尝试了许多固定的,似乎无法找出这一个。 任何帮助是极大的赞赏。 谢谢。

string匹配的Javascript

我想要@符号后面的字符,直到空格字符。 例如。 如果我的string像hello @world. some gibberish.@stackoverflow hello @world. some gibberish.@stackoverflow 。 然后我想获得angular色的“世界”和“计算器”。 这是我一直在尝试。 var comment = 'hello @world. some gibberish.@stackoverflow'; var indices = []; for (var i = 0; i < comment.length; i++) { if (comment[i] === "@") { indices.push(i); for (var j = 0; j <= i; j++){ startIndex.push(comment[j]); } } } 我可以得到@和空格的出现,然后修剪该部分以获得我的内容,但是我希望有一个更好的解决scheme/build议,没有REGEX。 提前致谢。