Tag: 连接

什么是Node.js连接会话()参数中的安全选项

我正在通过以下Connect示例工作: var connect = require ('connect'); var timeout = 30000; // session timeout: 30 seconds var sessionOpts = { secret: 'keyboard cat', key: 'myapp_sid', cookie: { maxAge: timeout, secure: true} /*Example doesn't work with secure?*/ }; var app = connect () .use (connect.favicon()) .use (connect.cookieParser ('keyboard cat')) .use (connect.session(sessionOpts)) .use (function (req, res, next) { […]

如何使用连接expressjs?

var express = require('express'), routes = require('./routes'), http = require('http'), path = require('path'), fs = require('fs'); var app = express(); app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.json()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); app.get('/', routes.index); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 我得到的错误Most middleware (like json) is no longer bundled […]

连接rest不处理请求

我有我的app.js文件中的代码来处理API请求 app.use('/api', cors()); rest.get('/posts', function(req, content, cb) { Post.find(function(err, posts) { if (err) return cb({error: 'Internal error.'}); cb(null, posts.map(function(p) { return { title: p.title }; })); }); }); var apiOptions = { context: '/api', domain: require('domain').create(), }; apiOptions.domain.on('error', function(err){ console.log('API domain error.\n', err.stack); setTimeout(function(){ console.log('Server shutting down after API domain error.'); process.exit(1); }, 5000); server.close(); […]

为Node.js安装Web服务器

我正在试图购买一本我购买的名为“Pro Angular JS”的书,而且我无法获得指向正确端口的Web服务器。 所以,我去命令行,运行节点,我得到的第一个错误是,当试图安装连接: npm should be run outside of the node repl, in your normal shell. (Press Control-D to exit.) 好,可以。 所以我按照命令指定的方式进行操作,并按照用户的要求进行安装,最后在我的用户根文件夹中添加一个名为node_modules的文件夹。 好吧,似乎一切仍然有道理。 现在,这本书告诉我在Node.js安装文件夹中创build一个server.js文件。 在我的用户上没有实际创build的Node.js安装文件夹。 我确实看到了node_modules文件夹。 所以我猜我的用户的根目录是node.js安装的地方,但也许是隐藏的或什么的? 我相信当我使用Mac安装程序的节点,它表示它是在usr / local / bin创build的。 但我不知道,如果这是我的用户在我的电脑,甚至更多的根访问我的电脑。 最后,回到这个server.js文件…所以我用一个文本编辑器创build它,包含这个代码: var connect = require('connect'); connect.createServer( connect.static("…/angularjs") ).listen(5000); 当然,他们希望我将这个文件添加到我的节点安装的目录。 目前,它位于我当前用户(用户是kst001)根目录的位置。 当我在shell中使用npm install connect行来安装node_module文件夹时,这也是我创buildnode_module文件夹的地方。 他们还希望我创build一个名为angularjs的文件夹,在那里我将存储我的应用程序,并将其放置在安装了node.js的根目录中。 再一次,坐在根目录中的一切。 然而,当我尝试启动我的testing文档在端口5000(localhost:5000 / test.html),我得到一个“找不到页面”的错误。 已经尝试使用这个链接来解决我的问题,这似乎死了我的问题,但它没有解决任何问题: 节点/连接问题对象函数createServer没有静态的方法 顺便说一句,我使用的是Mac。 […]

我得到一个错误安装networking服务器“连接”与nodejs NPM

从pipe理员帐户在Windows 7上安装Node.js并validation它运行后,我试图安装一个Web服务器。 C:\nodejs> npm install connect 我得到以下npm-debug日志: 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\nodejs\\\\node.exe', 1 verbose cli 'C:\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'install', 1 verbose cli 'connect' ] 2 info using npm@1.4.23 3 info using node@v0.10.31 4 verbose node symlink C:\nodejs\\node.exe 5 error Error: ENOENT, stat 'C:\Users\One\AppData\Roaming\npm' 6 error […]

fs writeFile在应用程序根目录下创build临时文件

我有下面的代码片段[加载文件到服务器。 它在本地环境中按预期工作,但不在Web服务器中工作。 使用connect-multiparty path = req.files.FIELDNAME.path; ogname = req.files.video.originalFilename; function(path , ogname, callback) { var fs = require('fs'); var uploadDir = process.cwd() + "/public/uploads/"; fs.readFile(path, function (err, data) { var originalFilename = new Date().getTime() + '-' + ogname.replace(/[\s,:-]+/g, "-"); var newPath = uploadDir + originalFilename; var relatPath = "/uploads/" + originalFilename; fs.writeFile(newPath, data, function (err,result) […]

如何在客户端浏览器退出时终止node.js服务器连接?

我试图写一个简单的node.js服务器与服务器发送事件能力没有socket.io。 我的代码运行得不错,但是当我testing它时遇到了一个很大的问题。 如果我从浏览器连接到node.js服务器,它将会收到服务器事件的罚款。 但是当我刷新连接时,相同的浏览器将开始接收事件两次。 如果我刷新n次,浏览器将接收数据n + 1次。 我试过的最多的是16次(16次刷新),之后我就不再去计算了。 从我的浏览器看到下面的控制台截图。 刷新后(试图进行AJAX调用),会输出“SSE长连接build立! 之后它将开始接收事件。 注意事件到达的时间。 我在19:34:07得到了两次事件(它在事件接收和数据写入屏幕上两次logging到控制台,所以你可以在那里看到四个日志)。 我也在19:34:12两次得到事件。 在客户端closures连接(使用source.close())之后,在服务器端看起来如此: 正如你所看到的,它仍然试图发送消息给客户端! 此外,它试图发送消息两次(所以我知道这是一个服务器端问题)! 我知道它试图发送两次,因为它发送了两个心跳,当它只发送一次每30秒。 此问题在打开n个选项卡时会放大。 每个打开的标签将会收到n * n个事件。 基本上,我如何解读它是这样的: 打开第一个标签,我订阅服务器一次。 打开第二个标签,我再次订阅两个打开的标签到服务器 – 所以这是每个标签的2个订阅。 打开第三个选项卡,我再次订阅所有三个打开的​​选项卡,因此每个选项卡共有3个订阅,共有9个,依此类推。 我无法validation这一点,但我的猜测是,如果我可以创build一个订阅,我应该能够取消订阅,如果满足某些条件(即心跳失败,我必须断开连接)。 而这种情况发生的原因只是因为以下原因: 我开始setInterval一次,它的一个实例将永远运行,除非我停止它,或 服务器仍然试图发送数据到客户端试图保持连接打开? 至于1.,我已经试图用clearInterval杀死setInterval,它不起作用。 至于2,虽然可能不可能,但我倾向于相信… 以下是相关部分的服务器端代码片段(根据答案的build议编辑代码): server = http.createServer(function(req, res){ heartbeatPulse(res); }).listen(8888, '127.0.0.1', 511); server.on("request", function(req, res){ console.log("Request Received!"); var route_origin = url.parse(req.url); if(route_origin.query !== null){ […]

使用connect-mongo时处理数据库错误

我有一个相当标准的连接mongo设置 在此之前,mongoose被初始化/连接 app.use(express.session({ secret: "sfdgsdgsdfg", store: new MongoSessionStore({db: mongoose.connection.db}) })); 这工作正常。 但是 – 假设我的mongodb连接突然死掉(在下面的例子中本地停止mongod) – 下一次我尝试点击一个路由时,我的快速应用崩溃了 – 错误:无法连接到[localhost:27017]。 (/Users/alex/Projects/MyProject/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:540:74)at emit(events.js:106:17)at null。 (/Users/alex/Projects/MyProject/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)在发射(events.js:98:17)在Socket。 (/Users/alex/Projects/MyProject/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10)在Socket.mit(events.js:95:17)在net.js: 440:14在process._tickCallback(node.js:419:13) 有没有办法来处理这个错误,(例如)redirect到/错误路线? (很显然,不需要会话!) 编辑 所以现在,我正在创build一个单独的mongoose连接。 然后我使用on('error'来听错误 …这是我卡住的地方 – 进程仍然死亡,因为重新抛出的错误不会传递到明确的error handling程序… var sessionDbConnection = mongoose.createConnection(config.sessionDb); sessionDbConnection.on('error', function(err) { console.log('oops'); throw err; //instead of re-throwing the error, i think i need to pass it […]

Cordova App的Socket.IO连接不工作

我试图设置我的cordova应用程序使用socket.io websocket连接,但我不能让它连接,当我在debugging模式下运行。 我读过的所有东西都告诉我应该这样做,我做错了什么? 服务器端 var http = require('http'); var server = http.createServer(); var io = require('socket.io')(server); server.listen(5022, function () { console.log('listening on *:5022'); }); io.sockets.on('connection', function (socket) { console.log('socket connected'); socket.on('disconnect', function () { console.log('socket disconnected'); }); socket.emit('text', 'wow. such event. very real time.'); }); 应用 document.addEventListener('deviceready', function() { onDeviceReady.bind(this); console.log('Device is Ready') var socket […]

对象函数createServer()没有方法'bodyparser'

我是nodeJS的新手。 我正尝试使用连接中间件的不同中间件。 这是我的代码: var connect = require('connect'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var app = connect() .use(connect.bodyParser()) .use(connect.cookieParser('tobi is a cool ferret')) .use(function(req, res){ console.log(req.cookies); console.log(req.signedCookies); res.end('hello\n'); }).listen(3000); 我已经通过npm安装了每个中间件。 运行此文件时出现此错误。 /home/dipesh/Desktop/temp/temp.js:5 .use(connect.bodyParser()) ^ TypeError: Object function createServer() { function app(req, res, next){ app.handle(req, res, next); } merge(app, proto); merge(app, EventEmitter.prototype); app.route = […]