草庐IT

Express-C

全部标签

node.js - 在将响应发送到客户端后执行的 express/connect 中间件

是否可以编写一个中间件,在响应发送到客户端之后执行,或者在请求被处理并在发送响应之前调用它? 最佳答案 pauljz给出了基本方法,但进一步扩展,这里是一个中间件示例module.exports=function(){returnfunction(req,res,next){req.on("end",function(){//somecodetobeexecutedafteranothermiddleware//doessomestuff});next();//moveontonextmiddleware}}在您的主应用中expre

node.js - express 中 response.status() 与 response.sendStatus() 之间的区别

response.status()和response.sendStatus()在Express中有什么区别。我注意到一个通常用于post、get和其他中间件,而后者用于删除请求。为什么是这样? 最佳答案 status()设置响应的HTTP状态(作为服务器端的Javascript对象)。sendStatus()设置状态发送给客户端。用法不依赖于请求的HTTP方法。在大多数情况下,您无论如何都会使用sendStatus,因为一旦处理了请求,状态就不太可能发生变化(尤其是因为状态代码是原始HTTP响应中的第一行)。在文档中阅读更多内容:h

node.js - 在 Express JS 中使用 Multer 根据扩展名过滤文件

正如问题标题所解释的,我需要根据文件扩展名过滤上传的文件。所以,我浏览了官方文档并搜索了这个网站。我的尝试我已经尝试过遇到的解决方案。文件正在成功上传,但问题是如何过滤文件。目前我的Router.js文件如下所示。Router.JSvarmulter=require('multer');varstorage=multer.diskStorage({//multersdiskstoragesettingsdestination:function(req,file,cb){cb(null,'./public/uploads/')},limits:{files:1,fileSize:1024

javascript - 从 express/nodejs 中的路由特定中间件链退出

我有一个用于该路由的“路由特定中间件”链,如下所示:varexpress=require('express');varserver=express();varmw1=function(req,resp,next){//dostuffif(success){next();}else{req.connection.destroy();//withoutcallingnext()}};varmw2=function(req,resp,next){//dostuffif(success){next();}else{req.connection.destroy();//withoutcallin

javascript - 如何在 node.js (express) 中全局设置内容类型

我可能错了,但我无法在任何文档中找到它。我正在尝试为任何响应全局设置内容类型,并且这样做://SetcontenttypeGLOBALLYforanyresponse.app.use(function(req,res,next){res.contentType('application/json');next();});在定义我的路线之前。//UsersRESTmethods.app.post('/api/v1/login',auth.willAuthenticateLocal,users.login);app.get('/api/v1/logout',auth.isAuthentic

调试 Node/Express --- 需要 ('express' )创建一个中断

我在Node和Express方面相当有限的经验并没有帮助,但我在从终端窗口调试应用程序时遇到了问题。问题来了:运行nodedebugapp.js返回:这是调试快速应用的正确方法吗? 最佳答案 有一个流行的GUI调试器(利用WebKit,即Chrome、Safari..)。你应该试一试https://github.com/dannycoates/node-inspector 关于调试Node/Express---需要('express')创建一个中断,我们在StackOverflow上找到

node.js - Express 不返回所有查询字符串参数

路线app.get('/pdf/:id',function(req,res){请求GEThttp://localhost/pdf/123?option=456&clientId=789我只会得到req.query=={option:'456'}req.params=={id:'123'}第二个查询参数怎么被截断了?我的分隔符是标准的'&' 最佳答案 如果您使用curl或某些终端命令,&在那里有特殊含义。尝试将它放在引号内curl'http://localhost/pdf/123?option=456&clientId=789'

javascript - Express.js - 如何修改路由中的 app.locals 变量

我有一个node.js项目。以下代码是我的app.js文件的一部分。我正在从数据库中进行查询并将结果存储在一个名为“Cats”的全局变量中。我正在使用此变量在站点的侧边栏上显示类别。我认为它不相关,但我使用Jade作为模板引擎。varapp=express()varquery="SELECT*FROMfindadoc.categories";client.execute(query,[],function(err,results){if(err){res.status(404).send({meg:err});}else{app.locals.cats=results.rows;}})

node.js - nodejs + passport + express 3.0 + connect-flash 不闪烁?

我正在使用本地Passport策略来验证用户身份。我按照JaredHanson给出的指南安装了connect-flash,以便为req对象提供flash方法。所以我的请求处理程序之一如下:app.post('/login',passport.authenticate('local',{successRedirect:'/',failureRedirect:'/login',successFlash:'Bienvenido',failureFlash:'Credencialesnoválidas'}));当用户登录失败时,它会再次将用户重定向到/login但它不会闪烁任何东西:/更新:我

validation - 使用 express-validator 验证密码

我正在使用express3.x的express-validator--当用户更改密码或注册新帐户时,他们必须输入两次密码。如果两个密码(两个字符串)不匹配,我将如何编写一个自定义验证器,它将错误推送到express-validator中的错误堆栈?类似这样的:req.assert('password1','Passwordsdonotmatch').isIdentical(password1,password2);varmappedErrors=req.validationErrors(true); 最佳答案 我找到了答案req.a