Tag: 快速

快递 – 如何修改请求,然后redirect到另一个路线?

我正在寻找一种方法来修改我的请求之前redirect到我的express.js应用程序中的另一个路线。 我尝试了两种方法来做到这一点: 1) #users.coffee router.use '/:id', (req, res, next) -> req.currentUser = req.params.id req.url = '/' next() #app.coffee app.use '/users', require('./routes/users') app.get '/', (req, res) -> locals = {} if req.currentUser locals.currentUser = req.currentUser res.render 'index', locals 2) #users.coffee router.use '/:id', (req, res, next) -> req.currentUser = req.params.id res.redirect '/' #app.coffee app.use '/users', require('./routes/users') app.get […]

Mongooseasynchronous调用另一个模型使validation不可能

我有两个mongoose模式,看起来像这样: var FlowsSchema = new Schema({ name: {type: String, required: true}, description: {type: String}, active: {type: Boolean, default: false}, product: {type: Schema.ObjectId, ref: 'ClientProduct'}, type: {type: Schema.ObjectId, ref: 'ConversionType'}, }); 然后将这个模式embedded到如下所示的父模式中: var ClientCampaignSchema = new Schema({ name: {type: String, required: true}, description: {type: String}, active: {type: Boolean, default: false}, activeFrom: {type: Date}, activeUntil: {type: Date}, […]

如何在async.each中包含async.waterfall的外部函数中调用async.each

我在Node.JS中有一个出口模块 exports.doSomethingImportant= function(req, res) { var id = req.params.id; Demo.findOne({'_id': id}) .exec(function(err, demosReturned) { async.waterfall([ function(outerCallBack){ console.log("In the First Call Back"); firstOrderFunction(demosReturned,outerCallBack); }, function(x,outerCallBack){ var y =3 var z = x*y; console.log("In the Second Call Back"); outerCallBack(null,z); } ],function(err,z){ if(err){ console.log("Error is == " +err); }else{ console.log("The Returned Value is == "+z); } }); });//End […]

Express从移动设备下载后,无法设置标题

我有相当简单的路线定义: router.get('/download', function(req, res){ var file = __dirname + 'file.ext'; res.download(file); }); 它正常工作,当我从我的比赛请求,但一旦我从智能手机,服务器崩溃,我得到以下错误: throw new Error('Can\'t set headers after they are sent.'); Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11) … at FSReqWrap.oncomplete (fs.js:95:15) 但是,如果我快速转过服务器,智能手机将无故障下载(从以前的会话)。 我在做什么错了?

在Express.js中使用traceId进行logging

我需要使用跟踪ID生成日志。 目前我们正在使用winston进行日志logging 我正在使用Winston容器如下 var fs = require('fs'); var os = require('os'); var path = require('path'); var winston = require('winston'); var transports = []; module.exports = function(setting) { function formatter(options) { return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : ''); } if (setting.log.file) { fs.existsSync(setting.log.path) || fs.mkdirSync(setting.log.path); transports.push(new winston.transports.DailyRotateFile({ handleExceptions: true, […]

当新代码推送到heroku时是否快速自动清除?

我一直在使用Fastly CDN的一堆静态资产,如图像等,我想用我的JavaScript和CSS,但我很谨慎,它不会更新,如果我推新的代码而这会造成错误。 我知道我可以build立一个系统来自动清除这个东西,但我宁愿不必。 基于一个或两个testing,我有一种感觉,即Heroku检测静态文件的变化,并从快速清除,但我没有看到任何说我可以依靠这个。 有人知道吗?

处理path如/ search /:search(/ filter1 /:filter1)?

我希望能够处理这样的path /search/:search /search/:search/filter1/:filter1 /search/:search/filter2/:filter2 /search/:search/filter1/:filter1/filter2/:filter2 我应该如何使用restify或expressjs(或任何其他REST库)? 我知道我可以创build一个基于正则expression式的处理程序,然后parsing参数,并为每个部分手动调用处理程序,但我直觉应该有一些更简单,更结构化的使用库方法处理程序的方式。 任何意见表示赞赏。 谢谢。 [编辑]我认为的解决scheme的观点是类似于这样的: REST.get('/search/:search(/filter1/:filter1)?(/filter2/:filter2)?',function(req,res,next){ // handler for search where $search is always defined, // but $filter1 and $filter2 are optional }); 现在这样解决,直到find更好的解决scheme 如果没有更好的命题,现在我这样做: var searchHandler = function (req,res,next){}; REST.get('/search/:search', searchHandler); REST.get('/search/:search/filter1/:filter1', searchHandler); REST.get('/search/:search/filter2/:filter2', searchHandler); REST.get('/search/:search/filter1/:filter1/filter2/:filter2', searchHandler);

Express Async – 发送后无法设置标题,双重callback?

我有一个恼人的地狱问题与'错误:发送后无法设置标头。 在Express中。 这个代码最初使用的是Restify而不是Express,而我一直以来以这种或那种forms出现这个问题。 该代码向另一个API(已编辑)发出2个asynchronous请求,并将结果合并到单个JSON中,然后将其存储到MongoDB中。 任何洞察力将不胜感激,因为我尝试了所有我能想到的,不知道为什么相同的function将在Restify中起作用,而不是Express在适当的变化。 请不要评论厄运金字塔,我知道这不是理想的,但这不是重点;) app.post('/rest/test', jsonParser, /*keycloak.protect(),*/ function (req, res, next) { var requestObj = req.body; try { /* run async requests in parallel */ async.parallel([ function asyncReqV3(callback) { request.post(reqUrl1, option_v3, function(err, response, body) { if(err) { console.log(err); callback(true); return; } else { callback(false, body); } }); }, /* v4 async request */ […]

在非Auth Web应用程序中处理和devise会话部分

我正在创build一个非常简单的Web应用程序(Node.js + Express + Mongoose)。 这更像是一次性使用的应用程序,所以没有用户名和密码,需要用户注册或login。 用户A在进入索引页面时可以使用该Web应用程序。 他会得到一个UUID(一些ID看起来像一个UUID :))。 我想设置一个会话模块,以便我的用户A在短时间内返回应用程序时不会得到新的UUID。 而我不想让用户A获得新的UUID的原因是:他可以与其他用户B / C私下交谈。 聊天的东西需要他/他们的UUID来存储和检索。 非常感谢您的帮助!

我如何设置nodejs并将其表示为数字海洋上的docker容器?

我试图得到这个工作,但我正在努力暴露端口80上的节点应用程序。我也想确保别的东西是安全的。 更新: 试图更清楚…我使用这个Dockerfile FROM node:argon # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN npm install # Bundle app source COPY . /usr/src/app EXPOSE 8888 CMD [ "node", "index.js" ] 然后我用这个命令启动容器 $ docker run -p 8888:80 christmedical/christ-medical-server 从我的docker公共IP我什么也得不到