Tag: 表示

socket.io – 触发从服务器端发射?

我怎样才能触发从socketIO的服务器端发出? 我在我的nodejs服务器上有一个socket.on('My_Event') ,我希望通过.emit('My_Event')从服务器的其他地方触发该事件。 我的目标是向客户端广播一些通知数据。 服务器端 – app.js var app = express(), server = http.createServer(app), io = require('socket.io')(server); io.on('connection', function(socket){ socket.on('My_Event', function(data){ socket.volatile.emit('event', data); }); }); server.listen(config.listenPort, '0.0.0.0', 511, function() { // config.listenPort is already defined console.log('node Server – listening on port: ' + config.listenPort); }); 导出 – 我想要触发事件的模块 var io = require('socket.io')(); exports.addStrategy = function(app) […]

AngularJS路由服务器端支持(NodeJS + express)

我在服务器上使用NodeJS + expressJS,在客户端上使用AngularJS AngularJS控制器有以下路线: app.config(function($routeProvider,$locationProvider) { $routeProvider .when('/field1/:id', { controller: 'ctrl1', templateUrl: "/view/mainpages/field1.html" }) .when('/field2/:id', { controller: 'ctrl2', templateUrl: "/view/mainpages/field2.html" }) ……….. many many .when('/', { controller: 'ctrl0', templateUrl: "/view/mainpages/index.html" }) .otherwise({redirectTo : '/'}); NodeJS静态: app.all('/*', express.static(__dirname + '/client')); 如何使服务器redirect他们的path上的所有静态页面相对于根,在这种情况下,直接通过这个链接的调用。 例如: server:3000/field1/23必须调用server:3000/client/index.html并且索引必须上传JS,例如server:3000/js/cntr1.js 更新:我find了解决问题的办法。 但它看起来丑陋的拐杖 app.get('/field1/([0-9]+$)', function(req, res, next) { req.url='/index.html'; next(); }); app.use('/field1', express.static(__dirname + […]

urlencoded与Node.Js中的表单数据

有没有什么快速的方法来确定在Node.JS中传递的数据是urlencoded还是form-data (multiparty)数据?

在Express上使用VHOST子域名

我有2个分离的网站(静态networking和应用程序)。 我试过使用Express vhost中间件,但是我无法pipe理。 对于下面的代码,我configuration我的hosts文件为; 127.0.0.1 localhost 127.0.0.1 process.localhost 我的server.js代码 var connect = require('connect') var express = require('express') var vhost = require('vhost') var app = require('./app') var static = require('./static') var server = connect() server .use(vhost('localhost', static.service)) .use(vhost('process.localhost', app.service)) .listen(1337, function(){ console.log('Server is listening') }) 然后,如果我写我的地址栏localhost:1337静态页面来这是很好的。 但是,如果我写入process.localhost:1337什么也没有。 我该怎么办? 编辑 如果我在编写地址栏localhost:1337 console write localhost:1337时添加以下中间件到我的代码中,但是我写入process.localhost:1337 console什么都不写。

在req vs res中存储数据

我有一个中间件(在sails.js中,一个基于expression式的框架),它在数据库中查找内容,然后存储它在对象中find的内容,所以我可以在布局/控制器中使用它。 目前,我将其存储在req对象中,如下所示: req.someStuff = 'Some stuff'; 不过,我刚刚读到,你也可以这样做: res.locals.someStuff = 'Some stuff'; 有什么不同? 两人都能完成同样的任务。 谢谢。

我想在Express.js中呈现静态html,但仍然有app.get()方法的逻辑

这似乎是一个荒谬的事情被挂断,但我想显示从app.get()方法内的HTML文件。 看起来像我遇到的每个答案使用解决schemeapp.use(express.static(__dirname + '/public')); ,但是那样不允许来自服务器的逻辑。 我想要做的,是我的.html文件被expression,所以我可以保留一些基本的逻辑: app.get('/', function(res, req) { if (condition) { res.render('this.html'); } else { res.render('that.html'); } } 对我来说,这似乎很愚蠢,这只是为了模板文件,我不能看到一些简单的工作。 编辑:使用sendFile似乎不允许HTML包含外部文件,javascript / css。

使用Express将文件读取到节点中的字节

在我正在处理的Web应用程序上,用户可以上传PDF文件。 我想阅读这个PDF文件到一个字节缓冲区,我可以传递到我的数据库将其保存为一个BLOB。 我正在使用Express框架在Node中执行此操作。 目前,我有以下几点: 上传表单: <form id='uploadForm' method='post' enctype='multipart/form-data'> <div class='form-group'> <div class='form-inline'> <label for='file'>File:</label> <input type='file' name='file'> </div> </div> <!— some other fields —> </form> 服务器端: router.post('/', function(req, res) { var file = req.files.file; var path = file.path; var fsiz = file.size; var buffer = new Buffer(fsiz); fs.read(file, buffer, 0, fsiz, 0, function (err, […]

mongoose从查询设置本地variables

我有一个函数,基本上查询MongoDB的凭证(简化): var query = Credential.findOne({token: token}); return query.exec(function (err, credential) { if (err) return null; return credential; }); 我需要这个credential的另一个查询来获得相关的angular色: router.get('/api/roles', function (req, res) { var token = req.headers.authorization || ''; var cred; if (token === '') { return res.sendStatus(401); } getCredential(token).then(function (credential) { cred = credential; }); getRoles(cred).then(function(roles) { return res.json(roles); }); }); 不幸的是,我似乎无法在已解决的承诺中设置局部variablescred ,因此它是undefined […]

SPA中的同构消耗REST服务

目前,我正在进行一个新项目的规划阶段,这个项目由一个店面,一个高度活跃的用户仪表板以及通过店面提供的高度互动的迷你应用程序来提供。 我们试图摆脱使整个平台成为SPA的束缚,用React为前端视图deviseFlux架构上的全部function。 像大多数SPA一样,一个问题就是SEO。 我已经基于este.js dev堆栈原型化了一个同构解决scheme。 一个问题是,我们的应用程序几乎从一个REST风格的服务器(它与服务于SPA的Web服务器分开)中消耗所有数据。 这意味着Web服务器需要从RESTful服务器获取大量的数据,以同构地生成HTML快照。 我认为我自己的一个单独的抓取程序会定期抓取整个店面,同时生成当Web服务器遇到search引擎抓取程序时可以提供的页面的HTML快照。 我不确定这是否是一个好的方法,因为它可能会引入额外的维护,坦率地说,似乎有点脆弱。 我可以让Web服务器同时生成HTML,但是我担心服务器会从REST API中获取相当多的数据,因此担心普通用户的服务器不能正常工作。 有没有更好的办法来处理这种情况?

ExpresJS:app.get()/ app.set()数据生存期

在express.js中,我们可以使用app.set / get来获取请求中的variables,将它们打印在玉石视图中,并在高级中间件中访问它们。 但是 – 在express的文档中找不到这些variables的生命周期。 例如,如果我使用: app.set('my-var', 'here is my var'); 并试图把它放在同一个中间件链中: console.log(app.get('my-var')); // would work 但是在一个新的请求中间件链上,我得到了undefined 我可以通关吗?