Articles of javascript

Node.js全局评估,引发ReferenceError

我正在尝试从Rhino书籍学习JavaScript。 我试图从书中执行以下关于eval() 。 我正在使用node.js(v0.10.29)来执行示例。 var geval = eval; // aliasing eval to geval var x = 'global'; // two global variables var y = 'global'; function f () { var x = 'local'; // define a local variable eval('x += "changed";'); // direct eval sets the local variable return x; } function g () { […]

使用$ set中的一个variables更新mongodb和node.js

我正在制定一个投票系统,投票是通过链接完成的。 在我的index.js中,我得到了所需的值,并把它们放在variables中。 “types”variables代表我需要更新的MongoDB中的字段,我已经把它放在一个variables中,因为它取决于哪个链接被点击。 现在在$ set函数中,它们需要db字段和一个新值,两者都使用variables,但是我的“type”variables不起作用。 而当我去到我的MongoDB有一个新的表格创build所谓的“types”。 这怎么解决? router.get('/vote/:Id/:Value/:Type', function(req, res) { var db = req.db; var id = req.params.Id; var type = req.params.Type; var value = parseInt(req.params.Value); var newValue = value + 1; var collection = db.get('games'); collection.update( {"_id" : id}, {$set: {type: newValue}} , function (err, doc) { if (err) { res.send("There was a […]

如何在节点中使用spec – grunt + karma + jasmine

含糊的版本问题: 如何使用grunt中的spec来使用require? 语境: 我正在做一个没有testing的现有节点项目,所以我读了一些,并意识到使用业力和茉莉花。 我读了一些Tutos(包括这些): http://kwilson.me.uk/blog/use-karma-and-grunt-to-run-your-jasmine-tests-in-real-time/ http://ahexamples.blogspot.com.br/2014/03/example-of-jasmine-karma-sonar-grunt.html 所以我试图运行我的规格咕噜,得到这个错误: X遇到一个声明exceptionReferenceError:找不到variables:require在file:///(…)-spec.js(line 2)(1) 这条线是这样的: var myHelper = require(…); 但是,如果我通过terminal“节点 – 茉莉花testing”使用它像一个魅力… 我的项目结构: 控制器/ 助手/ 楷模/ node_modules / 资源/ testing/ testing/规格/ 意见/ app.js Gruntfile.js 的package.json 在我的规范(内部testing/ spec /)我使用require('../../ helpers / helper.js'),这对节点茉莉花是好的,但没有与咕噜声。 节点茉莉花testing: ….. 在0.015秒内完成5个testing,5个断言,0个失败,0个跳过 咕噜: 运行“茉莉花:关键”(茉莉花)任务通过PhantomJStesting茉莉花规格 ReferenceError:无法findvariables:需要在app.js:1 Service HelpertestingX遇到声明exceptionReferenceError:无法findvariables:require在file:///(…)/ test / spec / serviceHelper- spec.js(第2行)(1) 1个规格0.005秒。 1次失败警告:任务“jasmine:pivotal”失败。 使用–force继续。 由于警告而中止。 […]

Node.js mikeal /请求模块 – 乱码非utf8网站(Shift_JIS)

我正尝试使用请求模块访问非UTF-8网站。 对这个请求的响应是乱码。 var request = require('request'); request('http://www.alc.co.jp/', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // Print the web page. } }); 即使在将编码选项设置为Shift_JIS之后,我也看到了乱码的日文文本。

在heroku上运行每个cronjob的casperjs

我已经在casperjs中创build了一个从网站上下载体育数据的应用程序。 我想运行这个应用程序每个cronjob在heroku上,以保存在csv,数据库或外部的谷歌文档(还没有决定)的体育成绩。 不过,在我开始为heroku实施之前,我有一个问题: 我发现这个heroku buildpack ,声称它可以运行casperjs scirpts。 但是,我需要nodejs来运行脚本吗? 或者我可以在heroku上创build一个cronjob? 我真的很感激你的回复!

如何转换函数调用与两个callback承诺

我有这样的function: var f = function(options, successCallback, errorCallback) { … } 我想把它转换成承诺。 我目前的解决scheme是这样的 var deferred = Q.defer(); f(options, function (result) { deferred.resolve(result); }, function (err) { deferred.reject(err); } ); return deferred.promise; 我不能使用Q.fcall,因为它需要一个Node.js样式的callbackfunction(err, result) { … } 那么,有没有一种方法来改善我的代码使用Q API ?

在Iron Router中使用Layouts时将行添加到<head>

使用铁路路由器和布局,如何将更多的线路添加到<head> ? 例如,将以下代码添加到<head> … <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <link rel="shortcut icon" href="assets/img/favicon.png"> <title>My Title</title> <!– Fonts from Google Fonts –> <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,700' rel='stylesheet' type='text/css'> <!– HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries –> <!–[if lt IE 9]> <script […]

Nodejs – 承诺,未处理的终止和内存泄漏

寻求有关使用promise的nodejs专家的帮助。 我有以下testing程序,其中我调用asynchronous“q”函数,只是抛出一个exception。 这个程序相当一致地泄漏内存; 但如果取消注释.done()调用,则泄漏消失。 为什么泄漏发生在承诺未终止(即没有完成()调用)? 我试图按照文档 ,但无法理解done()方法的解释。 在此先感谢您的帮助! 这是我的代码: (function() { var MAX_ITER_COUNT, Q, iterCount, maxMem, noop, qDoit, test; Q = require("q"); iterCount = 0; MAX_ITER_COUNT = 10 * 1000; maxMem = 0; noop = function() {}; qDoit = function() { var currentMem; currentMem = Math.round(process.memoryUsage().heapUsed / 1024 / 1024); if (currentMem > maxMem) { […]

未定义的socket.io错误不是一个函数

在服务器上安装了websocket和socket.io。 当我加载浏览器页面,我得到这个错误在控制台:未捕获TypeError:undefined不是一个函数(socket.io-1.2.1.js:1) 这里是服务器端代码: // Require HTTP module (to start server) and Socket.IO var http = require('http'), io = require('socket.io'); // Start the server at port 9602 var server = http.createServer(function(req, res){ // Send HTML headers and message res.writeHead(200,{ 'Content-Type': 'text/html' }); res.end('<h1>Hello Socket Lover!</h1>'); }); server.listen(9602); // Create a Socket.IO instance, passing it our server […]

Node.js和Multer – 在callback函数(req,res)中处理上传文件的目的地

我在Node.js是一个新手,最近我遇到了一个非常简单的问题。 我正在使用一个名为multer的模块,所以用户可以上传图片。 在我的networking应用程序中,所有的用户都有一个唯一的ID,我希望上传的图像被存储在一个根据他们的ID命名的目录中。 例: .public/uploads/3454367856437534 这是我的routes.js文件的一部分: // load multer to handle image uploads var multer = require('multer'); var saveDir = multer({ dest: './public/uploads/' + req.user._id, //error, we can not access this id from here onFileUploadStart: function (file) { return utils.validateImage(file); //validates the image file type } }); module.exports = function(app, passport) { app.post('/', saveDir, function(req, […]