Articles of javascript

Node.JS async.parallel不会等到所有任务完成

我正在使用aync.parallel并行运行两个函数。 这些函数请求RSS提要。 然后RSS提要被parsing并添加到我的网页。 但由于某种原因, async.parallel运行callback方法,而不必等到两个函数完成 该文件说: 一旦任务完成,结果作为一个数组传递给最终的callback。 我的代码。 require('async').parallel([ function(callback) { fetchRss(res, bbcOpts); // Needs time to request and parse callback(); }, function(callback) { // Very fast. callback(); } ], function done(err, results) { if (err) { throw err; } res.end("Done!"); }); 其实我只有“完成!” 在我的网页上。 为什么? 为什么我需要调用res.end() ? Node.JS文档说: response.end()方法必须在每个响应中调用。 如果我不打电话,我的网页将被“下载”(我的意思是在我的浏览器的地址栏中的进度条)。

如何将量angular器的承诺转换为浮点数

我正在使用量angular器写e2etesting,我想检查页面上的某些值是否正确计算。 这样的事情很简单: var var1 = element(by.binding('var1')); var var2 = element(by.binding('var2')); var var3 = element(by.binding('var3')); expect(parseFloat(var1.getText())).toEqual(parseFloat(var2.getText()) + parseFloat(var2.getText())); 但是,因为var1,var2和var3都是承诺,所以这是行不通的。 有没有办法将promise对象转换为string,以便我可以做出上述的工作?

错误:捆绑Meteor.js应用程序时没有这样的包

当我的Meteor应用程序被捆绑(使用Meteor UP mup deploy )时,它会在下面给出一组错误。 捆绑之前,我必须使用Meteorite手动安装(全球?)这些软件包吗? $ mup deploy Meteor-UP : Production Quality Meteor Deployments ————————————————– Bundling Started: /var/www/test-app Bundling Error: Command failed: ——————-STDOUT——————- rss: updating npm dependencies — rss… mailchimp: updating npm dependencies — mailchimp… Errors prevented bundling: While building the application: error: no such package: 'database-forms' error: no such package: 'crypto-md5' error: no […]

在nodejs中,如何将请求npm的原始put数据发送出去?

我需要在节点中使用“require”npm来打api。 api需要原始数据(不能放入字段)。 如何使用请求npm执行此操作? 我需要发送的示例原始数据: var body = { "id": 123, "squares": [ { square_id: 345, color: "#ccc" }, { square_id: 777, color: "#fff" } ] } 我正在尝试,但它不工作: request({ method: "PUT", uri: UPDATE_GAME, multipart: [{ 'content-type': 'application/json', body: JSON.stringify(body) }] }

我怎样才能dynamic生成一个文件名列表,用于与Grunt任务?

我正在使用load-grunt-config和grunt-prompt ,并且正在开发一个init任务,它在两个文件夹之间复制一些php模板。 现在的模板文件名是硬编码的,但我宁愿有grunt扫描正确的文件夹,并提供dynamic的文件名。 我试过使用grunt.file.expand ,但我无法得到它的工作。 是否有可能扫描一个文件夹,并返回一个数组(或对象,不知道你会怎么称呼它)的文件名格式grunt-prompt所期待的? // ————————————- // Grunt prompt // ————————————- module.exports = { // —– Initialization prompt —– // init: { options: { questions: [{ // Set the authors name config: 'init.author.name', type: 'input', message: 'What is your name?' }, { // Set the name of the project config: 'init.project.name', type: 'input', […]

nodejs以数组格式附加在json文件里面

我希望nodejs以下面的格式附加JSON格式的所有数据 [{ "name": "admin", "message": "dfd", "datetime": "2014-06-03 13:01:39" }, { "name": "admin", "message": "dfd", "datetime": "2014-06-03 13:01:39" },{ "name": "admin", "message": "dfd", "datetime": "2014-06-03 13:01:39" }] 我想要nodejs追加更多的数据。 我尝试追加,但它是这样追加 { "name": "admin", "message": "dfd", "datetime": "2014-06-03 13:01:39" }{ "name": "admin", "message": "dfd", "datetime": "2014-06-03 13:01:39" } 我使用下面的代码来追加 myData= { "name": "sam" , "message": "hi how […]

mongoose的行为和模式

目前我正在学习nodejs和mongodb,有两件事让我迷惑。 (1),当使用新的Schema和模型名称(不在db中)时,名称被改为复数forms。 例: mongoose.model('person', personSchema); 在数据库中,该表将被称为“人”。 这难道不容易混淆新开发者,为什么他们这样实现呢? (2)第二件事是,每当我想引用mongoDb中的现有模型(假设在db中,存在一个名为people的表)。 然后在我的nodejs代码中,我仍然需要定义一个Schema来创build一个引用这个表的模型。 personSchema = new mongoose.Schema({}); mongoose.model('person',personSchema); 不寻常的是,我如何定义模式似乎并不重要,它可以像上面那样是空的,或者填充随机属性,但是模型总是会得到正确的表,并且CRUD操作正常执行。 那么除了定义表结构来创build新表之外,Schema的用法是什么? 非常感谢,

nodejs pdfkit将dynamic生成的PDF附加到电子邮件(Mandrill-API)

我正在使用PDFKit和NodeJSdynamic生成PDF文档,并且我想将所述文档附加到电子邮件中。 在这一刻,我通过NPM使用了Mandril-API。 我可以生成没有问题的PDF,并通过浏览器显示它: doc.pipe(res); 我可以发送电子邮件没有问题,但我已经无法获得正确的PDF内容失败。 我相当肯定,我是99%的方式 – 但我失去了一些东西。 我已经做了大量的阅读和testing使用谷歌/ StackOverflow等,但我卡住了。 我得到的内容是,当我做一个base64解码我得到: %PDF-1.3%7 0 obj << /预测15 我已经设法让我的PDF附件有一个445KB的有效大小,但这是电子邮件的内容: –_ av-Ti-H6i8tBBHL4BgoXnyC2Q Content-Type:application / pdf Content-Transfer-Encoding:base64 Content-Disposition:attachment; 文件名= “mytestPDF.pdf” PDF1370obj / Predictor15 / COLORS1 / BitsPerComponent8 / Columns100e ndobj60obj /types/ x对象/亚型/图像/ BitsPerComponent8 / WIDT H100 / Height19 /过滤/ FlateDecode / DecodeParms70R / ColorSpace中/ I ndexed / DeviceRGB25580R / […]

处理http服务器崩溃

我有一个非常基本的http服务器: require("http").createServer(function (req, res) { res.end("Hello world!"); }).listen(8080); 我怎样才能听服务器崩溃,所以我可以发送500状态码作为回应? 听process.on("uncaughtException", handler)在process级别工作,但我没有请求和响应对象。 我看到的一个可能的解决scheme是在createServercallback中使用try – catch语句,但是我正在考虑是否有更好的解决scheme。 我试图侦听server对象上的error事件,但没有任何反应: var s = require("http").createServer(function (req, res) { undefined.foo; // test crash res.end("Hello world!"); }); s.on("error", function () { console.log(arguments); }); s.listen(8080);

在Gruntfile.js中使用grunt-browserify

我有一些麻烦find如何使用grunt-browserify的解释。 看他们的示例文件夹,我正在查看下基本示例下的browserify节点,我看到以下内容: module.exports = function (grunt) { grunt.initConfig({ browserify: { vendor: { src: [], dest: 'public/vendor.js', options: { require: ['jquery'], alias: [ './lib/moments.js:momentWrapper', //can alias file names 'events:evt' //can alias modules ] } }, client: { src: ['client/**/*.js'], dest: 'public/app.js', options: { external: ['jquery', 'momentWrapper'], } } }, concat: { 'public/main.js': ['public/vendor.js', 'public/app.js'] } }); […]