Tag: 表示

奇怪的JavaScript在Express / Socket.io应用程序我正在处理

我试图用Brian Ford的优秀的https://github.com/btford/angular-socket-io-seed开发一个像SCADA一样的应用程序,但是我遇到了一些JavaScript代码,理解。 更糟糕的是,我甚至不知道要search什么。 我通过Googlefind的每个例子都使用了第二种语法,在这里至less不起作用。 主app.js中的代码工作,但我需要访问套接字对象,所以我可以传递给我的开发模拟模块,所以我需要改变它。 但是,当我更改套接字连接callback模块不再被加载。 我知道当routes / socket.js中的代码运行时,因为日志行MET3:来自它。 有人可以给我一个线索是什么原始的行为,所以我可以做出改变呢? 这是一个很酷的新的速记我应该使用? 不确定如果是相关的,但我正在运行socket.io 0.9.16和node.js 0.10.29。 var io = require('socket.io').listen(server); // many lines latter io.sockets.on('connection', require('./routes/socket.js')); // What is this? Working Output Express server listening on port 3000 debug – client authorized info – handshake authorized hOEv8Iv7pPO1xLdxdq1V MET1: routes/index.js index() debug – setting request GET /socket.io/1/websocket/hOEv8Iv7pPO1xLdxdq1V **MET3:** […]

在Express中重构相似的路由,将callback提取到单独的模块中

我把我的路线分成了不同的模块。 但是,还是有相当数量的重复。 是否有一些良好的做法和约定正在形成如何从路线中提取代码? 我有许多路线,看起来像这样(Express 4.x): router.get('/:something', function(req, res, next) { manipulate(something); Model.findOne( …, function (err, model) { doSomethingInterestingWith(model, function(err, model) { res.render('template', { something: model} ); }); }); }); router.post('/:something', function(req, res, next) { manipulate(something); Model.new( {…}).save( function(err, model) { res.redirect('/:something'); }); }); 这是在一个名为例如routes/something.js 。 我摆弄的方法是将每个path的内容提取到一个可以提取到单独文件的函数中。 我试图尽可能简化这个例子,以保持这个可读性,但实际上,在调用渲染之前有相当多的代码。 嵌套的callback使我提取的函数非常难看。 我曾想过使用Q和诺言,但是我害怕用大锤来打苍蝇。

在MongoDB中创build新logging时,如何将多个项目保存到数组字段?

我有以下用于“组”集合的模式。 我希望能够创build此logging,并在第一次创build时将任意数量的“成员”推送到此组。 保存logging时,我无法获取“成员”字段。 所有其他字段保存没有问题。 var groupSchema = mongoose.Schema({ creator : String, name : String, members: [{ type: String, ref: 'User' }], created : { type: Date, default: Date.now } }); app.post('/create-group', function(req, res) { //req.body.users = ['12345', '23456', '34567'] for example var group = new Group({ name : req.body.group_name, creator : req.user._id, members: {$push: req.body.users} […]

通过设置encryption的Nodejs WebSocket服务器的问题

我试图让一个nodejs wss服务器启动并运行。 为此,我使用Express4框架和eniaros / ws模块。 但遗憾的是,我无法启动并运行WSS-Server。 正常的WS-Server工作正常,但每次尝试连接到我的WSS时,客户端都会连接并直接断开连接。 我的证书是自签名的。 我的代码如下所示。 如果有人能帮助我,这将是非常棒的! var express = require('express'); var router = express.Router(); var app = express(); var http = require('http'); var https = require('https'); var WebSocket = require('ws').Server; var path = require('path'); var fs = require('fs'); // Routes app.use('/', require('./routes/index')); // Load config files var db_conf = require('./config/vops_db_config.json'); var […]

Express4后的CSRF令牌问题已经过去了

这是我用conf来configurationexpress的。 app.use(cookieParser(config.sessionSecret)); var sessionTimeout = Number(sessionTimeoutValue) * 1000; // convert to miliseconds var sess = { secret : config.sessionSecret, store : sessionStore, //redis-sentinel rolling : true, saveUninitialized : true, resave : true, cookie : { maxAge : sessionTimeout } }; app.set('trust proxy', 1); // trust first proxy var expressSession = session(sess); app.use(function(req, res, next) { […]

如何将数据从NodeJS发送到OpenOffice单词模板

我怎样才能从NodeJS传递数据到OpenOffice模板文件的占位符? 是否有任何npm包可用于parsingODT模板文件,以便我可以打印数据? 我有一个13页的单词文件(用于打印报告的模板),我想用数据库中的某些细节填充到这个文件的不同页面中。 我喜欢以JSON格式传递数据。 我所知道的是如何从节点写入一个纯文本/ excel文件,但我想写入字模板的占位符,而不会丢失模板的其他部分。 过去,我对VBScript(使用Microsoft Word模板)也做了同样的处理。 现在想用nodejs来实现同样的function。 请与我分享您的想法..谢谢

列出圈子时,Google+ Domains 403禁止

这是请求权限并尝试列出圈子的源代码,我想要做的是能够列出圈子的人,添加/删除圈子里的人,但是当我尝试做这件事时,我得到一个禁止的错误,我可以访问这些范围。 var express, router, nconf, OAuth2, oauth2Client, scopes, google; scopes = [ 'https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/plus.circles.read', 'https://www.googleapis.com/auth/plus.circles.write' ]; google = require('googleapis') nconf = require('nconf'); OAuth2 = google.auth.OAuth2; express = require('express'); router = express.Router(); oauth2Client = new OAuth2(CLIENT_ID, SECRET_ID, REDIRECT_URL); router.get('/', function(req, res) { var url = oauth2Client.generateAuthUrl({ access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token) scope: […]

passportjs,摩卡,超级ECONNREFUSED

我正在尝试使用摩卡,超级terminal和护照进行身份validation,但是我收到拒绝连接的错误消息。 我认为这与我开始我的应用程序的方式… var testUser = { "email": "test@test.com", "password": "test" }; var app = require('../../server'); var request = require('superagent'); var user = request.agent(app); describe('authentication api ', function() { it('should login a user', function(done) { user.post('/login') .send(testUser) .end(function(err, res) { if(err) throw err; done(); }); }); }); 这个用户确实存在于我的mongo数据库中。 在我的服务器文件,这是更高的两个层次: module.exports = app.listen(port, function() { console.log('app listening […]

我如何从NodeJS / Expressnetworking应用程序运行CasperJS / PhantomJStesting?

问题重申: 我们如何通过运行NodeJS / Express / AngularJS的Web应用dynamic触发,运行并从CasperJS / PhantomJStesting中获取结果? 背景和调查: 让我先说这个问题,说我明白在这个问题上也有类似的问题,我已经尽力在阅读/理解方面尽职尽责。 我相信我的问题有点不同,因为我知道PhantomJS和NodeJS由于各种原因并不固有地协同工作。 曾经有过各种试图在NodeJS和PhantomJS之间“桥接”的项目。 总是出现的是phantomjs-node 。 然而,正如那个应用程序的作者所指出的,有很多的问题,PhantomJS的首席开发人员(我相信)已经表示他们不会支持NodeJS。 得到它了。 但是,有很多testing运行者似乎提供NodeJS集成并利用PhantomJS。 例如GruntJS可以利用MochaJStesting,而这些testing又可以调用JasmineJS,这显然可以通过PhantomJS来利用。 挑战/差异 我不想testing我的webapp,这似乎是唯一的用例大多数教程和问题围绕着社区。 我的用例是testing其他网站,已经生活适当的一个Web应用程序的整合。 为此,我有一个完整的NodeJS / Express / AngularJS应用程序,这是一个基于Web的testing和报告套件,我想集成CasperJS / PhantomJStesting结果。 我希望能够dynamic地将我的AngularJS前端的URL传递给我的NodeJS / Express服务器,然后它将触发我的CasperJS / PhantomJStesting,并以我可以包含在我的AngularJS报告前端中的方式返回结果。 通过从NodeJS调用单独的进程可能的解决scheme 我已经看到引用,但我现在找不到,调用一个“命令”生成一个单独的进程从NodeJS运行PhantomJS。 这是实现我的目标的最好方法(如果可能的话,我不想使用NodeJS / PhantomJS桥接器之一,告诉我我是否过于封闭)? 通过摩卡的潜在解决scheme visionmedia.github.io/mocha/ 我看了看Mocha,看起来很有希望,他们的标语是“Mocha是一个运行在node.js和浏览器上的function丰富的JavaScripttesting框架”。 但是,他们没有提供任何将这些testing引入像我这样的dynamicWeb应用程序的例子。 他们总是从假设您正在testing您的应用程序的立场出发,您将在您的应用程序之外运行一系列testing,而不是在您的应用程序中运行,正如我打算这样做的。 摩卡浏览器支持这部分看起来特别有前途。 看来我可能会在我的前端使用这个触发我的摩卡testing,对吧? 感谢您的所有帮助提前! 我很新的testing,所以我的头在这里游泳。 [编辑] 相关的问题,这不是100%回答我的问题 是否有可能从node.js运行PhantomJS作为命令行参数 使用PhantomJS和node.js保存并呈现网页 生成的node.jssubprocess的输出逐行parsing

Grunt任务查杀完成后的服务器

我正在构build一个应用程序,其中Grunt编译一个文件,作为下载返回给用户。 如果我已经有一个静态文件,我可以这样做: app.post('/', function(req, res){ var pkgFile = __dirname + '/myfile.js'; var filestream = fs.createReadStream(pkgFile); filestream.pipe(res); }); 问题是,如果文件是由Grunt编译的,从app.post()内部app.post() ,当Grunt任务完成后,退出我的快递服务器。 我得到了一个“完成,没有错误”的结论,并且结束这个过程。 我使用Grunt.cli运行我的Grunt任务,并将callback传递给我的包装器,因为我的Grunt任务返回数据,没有写入文件。 grunt.cli({ gruntfile: __dirname + "/../gruntfile.js", modules: modules, strip: !compat, releaseVersion: version, project: project, noCoreDependencies: !addCoreDependencies, callback: stream }); function stream (data) { var filename = ['MooTools-', project, '-', version, (compat ? '-compat' : '') […]