Tag: 表示

testing在节点中使用mocha / supertestredirect的请求

我似乎无法得到以下的集成testing,通过使用摩卡 , supertest , 应该 (和coffeescript)的快速项目。 考试 should = require('should') request = require('supertest') app = require('../../app') describe 'authentication', -> describe 'POST /sessions', -> describe 'success', (done) -> it 'displays a flash', (done) -> request(app) .post('/sessions') .type('form') .field('user', 'username') .field('password', 'password') .end (err, res) -> res.text.should.include('logged in') done() 相关的应用程序代码 app.post '/sessions', (req, res) -> req.flash 'info', […]

“morgan”模块与快速应用程序有什么关系?

在一个快速教程中,作者使用了npm module morgan 。 摩根能为快递应用程序做些什么? 任何人都可以帮我理解这个吗? 通过谷歌search得到这个,但我什么都不明白在这里: var express = require('express') var morgan = require('morgan') var app = express() app.use(morgan('combined')) morgan('combined') morgan(':remote-addr :method :url') morgan(function (tokens, req, res) { return req.method + ' ' + req.url }) 提前致谢!

如何让Node.JS Express只听localhost?

我有一个应用程序,我有一个反向代理,我想它只听本地/ 127.0.0.1。 我期待这个工作: app.listen(3001, 'localhost'); 要么 app.listen(3001, '127.0.0.1'); …但是,我得到一个错误: node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Cannot read property 'port' of null at Object.<anonymous> (/home/ctoledo/hive-go/go.js:204:76) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40) 运行没有指定主机名的应用程序可以正常工作,即app.listen(3001); 。 我正在运行Node v0.6.14并且expression了@ 2.5.5,并且已经阅读了这个谷歌小组的讨论,并且在Express […]

Node.js,在app.configure中expression和使用开发与生产

什么是最简单的方法让expression知道我在什么环境? 例如,我想要做下面的连接到redis取决于我在什么env。这可以从命令行完成吗? app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); var r = require("redis").createClient(6379,'127.0.0.1'); }); app.configure('production', function(){ app.use(express.errorHandler()); r = redis.createClient(6379,'46.137.195.230', { detect_buffers: true }); });

护照本地策略没有被调用

我确定我在这里错过了一些非常明显的东西,但我无法弄清楚这一点。 当传递login表单时,我传递给LocalStrategy构造函数的函数不会被调用。 码: var express = require('express'); var http = require('http'); var path = require('path'); var swig = require('swig'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; passport.serializeUser(function(user, done) { console.log('Serialize user called.'); done(null, user.name); }); passport.deserializeUser(function(id, done) { console.log('Deserialize user called.'); return done(null, {name: 'Oliver'}); }); passport.use(new LocalStrategy( function(username, password, done) { console.log('local strategy […]

在ExpressJS / ConnectJS中间件内部访问“app”variables?

这可能不是我正确的方法,但是我想在expressJS / connectjS中间件调用中有条件地向appvariables添加对象/参数。 由于此函数是callback函数,因此在中间件调用中访问app的标准/最佳方式是什么? //app.js var myMiddleware = require('./lib/mymiddleware.js'); … app.configure( function(){ app.use( myMiddleware.func() ); … } if( 'object' !== typeof app.myObject ){ cry( 'about it' ); } //mymiddleware.js module.exports.func = function( ){ return function( req, res, next ){ //append app object //app.myObject = {} next(); } }; 请注意,这不是为locals或settings稍后呈现的东西,而是将在路由和套接字后面的执行链中使用的东西。

创build方法来更新和保存与mongoose的文件?

查看官方文档后 ,我仍然不确定如何创buildmongoose内部使用的方法来创build和更新文档。 那我该怎么做呢? 我有这样的想法: mySchema.statics.insertSomething = function insertSomething () { return this.insert(() ? }

将expressjs绑定到特定的IP地址

如何将expressjs服务器绑定到特定的IP 就像是 app.listen(8888, '192.168.0.101'); 相当于nodejs: http.createServer(onRequest).listen(8888,'192.168.0.101');

在MongoDB和Mongoose中执行全文search的最佳方法

我在Google上search了很多天,我尝试了很多东西,但仍然无法在用户集合上进行全面的全文search。 我试过ElasticSearch,但是很难查询和分页… 我尝试了很多像ElMongo,mongoose全文,Mongoosastic等Mongoose插件…每个人都真的不好logging,我不知道如何执行一个很好的全文search。 所以,我的collections是一个正常的集合: user = { name: String, email: String, profile: { something: String, somethingElse: String } } 我有一个简单的POST页面中的searchinput,如果我inputhello world ,我需要的是在整个收集字段上search我的search查询的匹配单词,并获得结果。 这将是非常好的也有处理一个分页,如每页10项或东西的选项… 什么是实现这个最好的解决scheme? 我在Mongoose,NodeJS和ExpressJS上使用MongoDB 2.6。*。 谢谢。

在expressjs app.VERB调用中next()和next('route')有什么区别?

该文档阅读: app.VERB()方法在Express中提供路由function,其中VERB是HTTP动词之一,比如app.post()。 可能会给出多个callback,所有处理都是平等的,并且像中间件一样行为,除了这些callback可能会调用next('route')来绕过剩余的路由callback之外。 这种机制可以用来执行路线上的先决条件,然后在没有理由继续匹配路线时将控制权传递给后续路线。 他们是什么意思“绕过剩余的路线callback?”? 我知道next()会将控制权交给下一个匹配的路由。 但是… next('route') …什么function将得到控制…?