Tag: express 4

file upload挂在生产代码上,但在本地工作 – multer,node.js

我正在写快速3,现在我们升级到expression4,我有一个file upload的问题。 一切工作在我的本地计算机mac OSX,但不能在Ubuntu的生产服务器上工作。 我正在上传zip文件,里面有png和psd。 我正在上传文件的多部分forms:与multer中间件。 当地一切都好,但在生产环境中,连接正在打破。 文件开始上传到主上传根,但作为一个块的一部分,例如我上传50 MB的zip文件,但上传大约30 kb和连接中断,因为上传数据块的onFileDataupload事件是中断。 app.js中的设置 我的身体分析器设置: app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false }) ); 我的Muller设置: app.use(multer({ dest: './upload', limits: { fieldNameSize: 500, files: 2, fields: 20, fileSize: 200 * 1024 * 1024 }, rename: function (fieldname, filename) { return fieldname + filename + Date.now(); }, onFileUploadStart: function (file) { console.log('Upload starting […]

在一个path文件中定义的Express-session在app.js节点JS中不可用

我在节点js中的快速会话问题,并表示4.我在routes / index.js内设置一个会话variables,并不是在app.js.中可用另一个路由文件users.js 路线/ index.js var sess; router.get('/setsession',function(req,res){ sess=req.session; sess.username="safeer"; res.send("hi "+sess.username); }); router.get('/getsession',function(req,res){ sess=req.session; res.send("hi "+sess.username); //here session value available }); 路线/ users.js var sess; router.get('/session3',function(req,res){ sess=req.session; res.send("hi "+sess.username); // here also session is available }); app.js var session = require('express-session'); app.use(session({secret: 'secret',saveUninitialized: true,resave: true})); var sess; app.get('/session1',function(req,res){ sess=req.session; res.send("hi "+sess.username); //here session is […]

如何禁用快递4中的玉/模板引擎

我是新来expression,我想探索Express的工作。 我正在使用最新版本的express 4 (4.8.1) 我不想使用任何模板引擎。 我想手动提供我的HTML内容。 我怎么做? 我在这里search了几个问题是StackOverflow,我find了一个解决scheme。 我应该做的就是评论以下几行。 // view engine setup //app.set('views', path.join(__dirname, 'views')); //app.set('view engine', 'jade'); 但是当我这样做,当我从浏览器中打开我的服务器时,出现以下错误。 Error: No default engine was specified and no extension was provided. at new View (/Users/adi/Desktop/srserver/node_modules/express/lib/view.js:41:42) at Function.app.render (/Users/adi/Desktop/srserver/node_modules/express/lib/application.js:499:12) at ServerResponse.res.render (/Users/adi/Desktop/srserver/node_modules/express/lib/response.js:955:7) at module.exports (/Users/adi/Desktop/srserver/app.js:50:9) at Layer.handle_error (/Users/adi/Desktop/srserver/node_modules/express/lib/router/layer.js:52:5) at trim_prefix (/Users/adi/Desktop/srserver/node_modules/express/lib/router/index.js:261:13) at /Users/adi/Desktop/srserver/node_modules/express/lib/router/index.js:230:9 at Function.proto.process_params (/Users/adi/Desktop/srserver/node_modules/express/lib/router/index.js:305:12) […]

检查redis是否正在运行 – >节点js

我只是想知道,在我的NodeJS过程的开始,如果Redis是否启动(所以用户会话将被存储与否)。 这是我目前所拥有的: var session = require('express-session'); var RedisStore = require('connect-redis')(session); var redis = require("redis"); var client = redis.createClient(global.redis.host, global.redis.port); // Check if redis is running var redisIsReady = false; client.on('error', function(err) { redisIsReady = false; console.log('redis is not running'); console.log(err); }); client.on('ready', function() { redisIsReady = true; console.log('redis is running'); }); // Here I use […]

nedb方法更新和删除创build一个新的条目,而不是更新现有的条目

我正在使用nedb ,我试图通过匹配它的ID更改现有的logging,并更改title属性。 发生的是一个新的logging被创build,而旧的logging仍然存在。 我尝试了几种组合,并试着用Googlesearch,但search结果很less。 var Datastore = require('nedb'); var db = { files: new Datastore({ filename: './db/files.db', autoload: true }) }; db.files.update( {_id: id}, {$set: {title: title}}, {}, callback ); 什么是更疯狂的执行删除时,一个新的logging再次被添加,但这次logging有一个奇怪的属性: {"$$deleted":true,"_id":"WFZaMYRx51UzxBs7"} 这是我正在使用的代码: db.files.remove({_id: id}, callback);

Node.js使用csurf有条件地使用express 4

我尝试在我的快速应用程序的几条路线上使用csurf。 这是方法: var express = require('express'); var session = require('express-session'); var csrf = require('csurf'); // some more stuff var csrfExclusion = ['/myApi','/unsecure']; var app = express(); var conditionalCSRF = function (req, res, next) { if (csrfExclusion.indexOf(req.path) !== -1){ next(); } else{ csrf(); } }); app.use(conditionalCSRF); 甚至尝试过: var conditionalCSRF = function (req, res, next) { if […]

如何将configuration的护照对象传递到Express4中的路由模块?

因为从Express 4你不应该这样做 require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport module.exports = function(app, passport) { // ===================================== // FACEBOOK ROUTES ===================== // ===================================== // route for facebook authentication and login app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); // handle the callback after facebook has authenticated the user app.get('/auth/facebook/callback', […]

如何使用Socket.IO最佳地构buildExpress V4.11 +项目?

我已经使用了最新版本的快速生成器 ( 链接 )来生成样板Express 4.11.2项目。 我试图找出设置Socket.IO 1.3.3的最好方法,在Express框架中,http服务器被移动到它自己的bin/www文件中。 我感到困惑,因为它似乎我需要app.js的快递服务器,在它被导出到bin/www 。 我已经尝试了几个小时的Googlesearch,并没有得到任何东西,似乎Express框架正在移动如此之快,以前的所有文章都过时了。 任何帮助将不胜感激! 我将下面的两个文件包括在内,以便在生成样板快速项目后可以看到我正在处理的内容。 斌/ WWW #!/usr/bin/env node /** * Module dependencies. */ var app = require('../app'); var debug = require('debug')('Express-Socket:server'); var http = require('http'); /** * Get port from environment and store in Express. */ var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); /** * Create […]

如何处理expression式4的FormData

我尝试发送一些表单数据到我的节点服务器,但req.body没有我的表单字段节点端 var express = require('express') var app = express() var path = require('path') var bodyParser = require('body-parser') app.use(bodyParser.urlencoded({ extended: true })); app.get('/', function (req, res) { res.sendFile('index.html') }) app.post('/sendmail', function (req, res) { const formData = req.body.formData 这是我从浏览器发送的内容 fetch('/send', { method: 'POST', body: new FormData(form) }) 在开发工具中,我只能看到在Referer中传递的数据,也许这是我的问题 Referer: http:// localhost:3000 /?name =&budget =%C2%A31000

Node Express 4路由后的中间件

在升级到Express 4以及删除app.router之后,我很难在路由执行后让中间件执行。 例如下面的代码正确地回应“你好”,但从不调用configuration的中间件 var express = require( "express" )(); express.get( "/", function( req, res ) { res.send( "hello" ); } ); express.use( function( req, res, next ) { console.log( "world" ); next(); } ); express.listen( 8888 ); 澄清: 以下代码在控制台上显示“之前”,但不显示“之后”: var express = require( "express" )(); express.use( function( req, res, next ) { console.log( "before" ); […]