Tag: 表示

Scoket.IO v1.0.x基于令牌的身份validation – 不能传递令牌?

我正在使用本教程来获得基于令牌的身份validation系统的基础知识。 这是我正在使用的代码: 在app.html中: var socket = io('', { // originally I thought the $.param might've been a problem, so I hard coded a token instead // query: $.param({token: 'i271az2Z0PMjhd6w0rX019g0iS7c2q4R'}) query: "token=i271az2Z0PMjhd6w0rX019g0iS7c2q4R" }); 在index.js中: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var tokens = [ 'i271az2Z0PMjhd6w0rX019g0iS7c2q4R', 'oWD4sh1eU2Yhn95C05t2YKrKMVWoAFAk' ]; io.set('authorization', function(handshakeData, callback) […]

检测成功读取stream打开

我正在为Express.js实现静态服务中间件的caching,其工作原理如下 – 请求到达时,中间件首先尝试从文件系统提供文件,如果没有,则从上游提取文件并存储在文件系统中。 问题是我不知道如何正确检测“caching命中”事件。 staticMiddleware = function(req, res, next) { // try to read file from fs filename = urlToFilename(req.url); stream = fs.createReadStream(filename); // cache miss – file not found stream.on('error', function() { console.log('miss ' + req.url); // get file from upstream, store it into fs and serve as response stream = fetchFromUpstream(url); stream.pipe(fs.createWriteStream(filename)); stream.pipe(res); […]

如何在Expressjs / nodejs中启动函数(Setup方法)

我希望我的工作服务器在启动后立即从父服务器获取任务,并为未完成的任务保持ping。 鉴于Nodejs是一个事件驱动,我如何让我的快递服务器rest呼叫服务器,开始后立即开始工作? 在某种程度上,我要求在Nodejs中设置方法。

无法用Express + jade + angular查找视图

像我之前这么多,我得到以下错误: Failed to lookup view "/partials/test" in views directory "/home/aveline/git/multivision/server/views" 由于我使用Jade,所以我的模板通过app.get(这是我的server.js文件)呈现: var express = require('express'), stylus = require('stylus'), logger = require('morgan'), bodyParser = require('body-parser'); var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var app = express(); function compile(str, path){ return stylus(str).set('filename', path); } app.set('views', __dirname + '/server/views'); app.set('view engine','jade'); app.use(logger('dev')); app.use(bodyParser()); app.use(stylus.middleware( { src: __dirname […]

expression4路线问题

刚刚学习nodejs,expression,玉。 在取得进展的同时,我无法理解路线如何运作。 我有路线文件夹中的路线和视图文件夹中的视图(Jade文件)。 这有效,但我不知道如何。 假设我有一个页面富。 在路线中,我有foo.js: var express = require('express'); var router = express.Router(); /* GET foo page*/ router.get('/', function(req, res) { res.render('foo', {title: 'Foo' }); }); module.exports = router; Jade文件中调用Foo的菜单链接具有href =“/ foo”属性。 怎么router.get('/',…)工作? 它不应该是 router.get('/foo', function(req, res) { res.render('foo', {title: 'Foo' }); }); 当我尝试这样做,但是,它无法find路线,我得到一个404,这似乎反对路由器文档。 我可以随它去,让所有的路线获得('/',…)或后('/',…),这确实有效,但它似乎是错误的。 我错过了什么? 感谢您的洞察力。

Node.js / Express项目结构

所以我已经有严格的MVC编程背景(Laravel,CodeIgniter,Django等),越来越多的我在Node.js中构build更大的项目,但是我很难找出构build我的可靠方法有意义的项目… 我已经做了一些研究,我喜欢J. Cole Morrison在这里做的方式,但它使得非常胖的路线文件。 结构是类似的 应用 -路由器 -index.js(你的主要path定义,导入个人路由文件) –routes 这是很好的和可读的,但你所有的逻辑是填充在路线文件夹,只是没有意义(或做?)。 我想我会期望更多的东西可以处理你的想法。 其他人是否有想法或结构他们使用或者这是一个好方法去?

是否可以在Node / Express 4.0中声明全局variables?

我有多个路由,需要访问数据库,为开发我使用本地数据库,显然生产我使用托pipe数据库 唯一的问题是我每次去推释放,我必须通过每个path手动更改数据库链接 例如 var mongodb = require('mongojs').connect('urlhere', ['Collection']); 如果我可以在app.js声明一个variables就好了 app.set('mongoDBAddress', 'urlhere'); 然后在每个文件中做类似于var mongodb = require('mongojs').connect(app.get('mongoDBAddress'), ['Collection']); 有谁知道这是否可以实现我已经搞了大约一个小时的谷歌search,试图包括不同的东西,但我没有运气。 谢谢。

在每个请求中传递一个variables来查看Node.js Express

我有一些在我的路线中重复的代码,并且我总是从重复的代码中传递一些结果variables。 例: /* GET /events/list */ router.get('/events/list', function(req, res) { var blah = someFunctionThatAnalyzesUserCookie(); res.render('places/list', { title: 'Places', blah: blah }); }); /* GET /events/details */ router.get('/events/details', function(req, res) { var blah = someFunctionThatAnalyzesUserCookie(); res.render('places/details', { title: 'Some place', blah: blah }); }); 我怎样才能重构这个? 我需要把所有的观点都传给我,我希望他们的逻辑清晰,就像这样: /* GET /events/list */ router.get('/events/list', function(req, res) { res.render('places/list', { […]

Express – 创build一个新的视图引擎

我知道expressjs支持许多视图引擎,如:ejs,jade等。我在这里看到一个列表: http ://expressjs-book.com/forums/topic/how-to-use-alternative-non-jade-template 引擎与expression/ 。 我的问题是如何创build我自己的视图引擎。 我查看过ejs和其他引擎的源代码,但是我没有真正find有关如何创build新引擎的expressjs文档,有什么要求或有关它的教程。 是否有可能创build一个新的自定义视图引擎? 谢谢。

next()在node.js中如何停止函数?

好的,我有这样的代码: app.get('/someUrl', function(req, res, next){ if(req.body.username==''){ next({'type':'error', 'httpCode':400, 'message': {'errCode': 'e402', 'text': 'Not name specified'}}) } var user=new User({'name':'Jack Leeeee'}) user.save(function(err, affected) { if (err) next({'type': 'error', 'httpCode': 400, 'message': {'errCode': 'e403', 'text': 'Bad error :('}}) console.log('all is ok!') res.send(200, "Ok") }) }) 当我尝试发送空请求时,我的error handling程序通过next()函数向我发送正确的响应。 但是在这个用户模式试图保存(这使得exception)之后。 如何在调用next()之后停止app.get()函数? 唯一的办法,我发现是电话 return false; 在next()之后,但是这个方法在asynchronous函数(如user.save())中不起作用,很明显 UPD1:换句话说,如何避免在控制台中“仍然活着”? user.save(function(err,c){ return next(err) […]