Tag: 中间件

Node.JS – 在中间件中获取最终发送的数据

是否有可能在中间件中获取刚刚由我的API发送的数据? 例如,我有一个nodejs服务器与这个中间件: var middleware = function(req, res, next) { res.on('finish', function() { console.log(res.statusCode); // display 200 console.log(res.body); // display empty data }); next(); }; 而我的API: app.get('/url', function(req, res) { res.status(200).json({name:'john'}).end(); }); 但是在我的中间件中,我只能得到statusCode'200',而不是对象{name:'john'} 。 任何人都可以帮助我? 谢谢。

BISON编码/解码socket.io的中间件?

有没有办法篡改socket.io发送/接收之前发送的数据? 我正在考虑像一个快递中间件。 所以我可以在调用普通的.emit()方法之后,在调用socket.on(…)之前对数据进行编码。 在expression我会想像它有点像这样的BISON解码所有传入的请求: app.use(function(req, res, next) { req.body = BISON.decode(req.body); next(); }); 现在怎么可能用socket.io来完成请求被发送的方式也被自动编码? 我知道,socket.io支持中间件以类似的forms来expression,但这只是为了socket.io发送创buildwebsocket连接的实际http请求… io.use(function(socket, next) { //… next(); }); 所以我怀疑这会有什么帮助

passport.js无法在实时生产服务器中存储会话

当我在端口8080 在本地运行服务器时,它在正常validation和序列化数据时正常工作。 但是,当我在现场制作上运行我的代码时,它通常是通过身份validation的,但不会将任何数据存储到会话中! 我不知道什么中间件应该为这件事情设置?

ExpressJS 4.15.2自定义中间件设置内容types

我有一小块自定义的中间件,但我似乎无法得到响应的内容types是什么,但文本/ HTML。 getValidator: function(req, res, next) { res.setHeader('Content-Type', 'application/json'); if (!req.query.Name) { next('please provide a Name'); } return next(); } 这是一个超级小应用程序,没有其他自定义中间件。 谢谢!

声明与打印机自定义接口合并

我正在寻找添加一个用户属性的express.Requesttypes,使得req.user将是我的自定义typesIUser。 我读了声明合并是要走的路,所以我创build了一个custom.d.ts文件 declare namespace Express { export interface Request { user?: IUser; } } 尽pipe打字稿现在允许我使用req.user,但它被定义为键入any 。 在我的types文件中导入IUser并没有帮助,因为它只是使打字机变得更糟,现在根本不能识别req.user。 我的打字怎样才能被IDE视为IUser?

为什么在下一个中间件函数中包含res.send的时候,图像不会渲染?

我是新手expressjs,这是我的应用程序js:当我删除res.send ie阿曼在下一个中间件图像下载,但是当我包括,图像不下载。 我很困惑,我的意思是中间件一个接一个地执行,一个是执行的,next()会唤起然后下一个,但是这里不是这样的,为什么呢? 任何人都可以向我解释这一点 var express = require('express'); var app = express(); app.get('/', function(req, res) { res.send("Default"); }); var Aperson = function(req, res, next) { console.log("File is downloaing"); res.download(__dirname + '/instagram_5.jpg'); next(); } app.get("/download", [Aperson], function(req, res) { res.send("AMan"); }); app.use(function(req, res) { res.status(404).send("Sorry cant find that"); }); app.listen(4000, function() { console.log("App started on port […]

app.get(/)不呈现index.ejs文件

我对node.js很新颖。 我只是按照快速js的基本教程。 我正在面临的问题我不能够呈现index.ejs文件,即使按照下面的步骤。 打本地主机我得到的ReferenceError:索引没有定义在C:\ NodeJS \ expressDemo.js:28:13 expressDemo.js: var express= require('express'); var bodyParser= require('body-parser'); var path= require('path'); var app = express(); /* var logger = function(req, res, next){ console.log("logging"); next(); } app.use(logger); */ //middleware //view engine–ejs app.set('view engine','ejs'); app.set('views',path.join(__dirname,'views')); /* body parser middleware */ app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended:false})); app.get('/',function(req,res){ res.render(index); }); app.listen(3000, function(){ console.log("application started on 3000 […]

Express.js中间件 – 将项目添加到响应对象模型

我正在玩Expressjs,并试图从默认模板中提取页面标题到中间件,而不是每次传递到视图的模型。 默认的index.jade模板 h1= title p Welcome to the #{title} 来自模板的默认路由 exports.index = function(req, res){ res.render('index', { title: "Express" }); }; 我试图以下,但从Express表示错误title是不确定的,当我这样做。 module.exports = function(req, res, next){ res.title = 'Express'; next(); } 这显然是一个微不足道的例子,但是这也是我想弄明白的,因为在每条路线之后,我可能会想要在响应的模型中注入一些东西。 我只是不知道该怎么做。 谢谢

Node.js静态文件服务器逻辑(使用Connect中间件)

假设我有以下文件系统结构: /app/ Main application folder /app.js Server JS file ran by node.js /public Folder containing files for public website (port 80) /index.html /js/ /game.js /admin/ Folder containing files used by local network system (port X) /index.html /js/ /screen.js /share/ Folder containing files to be used by public website OR lan /js/ /jquery.js 最终的结果是, admin/index.html看起来像: <script […]

使用less-middleware将多个源CSS文件编译成一个?

在我的Node.js应用程序中,我使用less-middleware将LESS文件编译为CSS文件。 适用于单个文件: app.use(require('less-middleware')({ src: path.join(__dirname, '../', '/public/css') })); 但是,我想知道是否有可能采取两个源文件,并编译(并可选地缩小)到一个单一的.css文件。