Tag: 表示

什么是Node.js中的process.env.PORT?

什么是process.env.PORT || 3000 process.env.PORT || 3000用于Node.js? 我看到这个地方: app.set('port', process.env.PORT || 3000); 如果它被用来设置3000作为监听端口,我可以用它来代替吗? app.listen(3000); 如果不是为什么?

错误:无法将用户序列化到会话中

嗨护照模块有问题,并表示。 这是我的代码,我只想使用硬编码的login进行第一次尝试。 我总是得到这个消息: 我search了很多,发现了一些post在stackoverflow,但我没有得到失败。 Error: failed to serialize user into session at pass (c:\Development\private\aortmann\bootstrap_blog\node_modules\passport\lib\passport\index.js:275:19) 我的代码看起来像这样。 'use strict'; var express = require('express'); var path = require('path'); var fs = require('fs'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var nodemailer = require('nodemailer'); var app = express(); module.exports = function setupBlog(mailTransport, database){ var config = JSON.parse(fs.readFileSync('./blog.config')); app.set('view […]

表示4.0,用奇怪的警告信息表示会话

我正在尝试使用express 4.x来设置nodejs应用程序。 在经历了中间件移除问题之后,我终于find了工作。 但是,在下面这行代码中有几条警告消息: app.use(session({secret: '<mysecret>'}) 这些警告是: Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11 Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11 在文档中,resave和saveUninitialized的默认值是true。 所以,改变代码来阅读 app.use(session({secret: '<mysecret>', saveUninitialized: true, resave: true})); 摆脱了警告。 那么,为了解决这个问题: 为什么我必须将这些值传入,如果他们是默认值,为什么我不必通过其他选项?

如何在Express中获得所有注册的路线?

我有一个使用Node.js和Express构build的Web应用程序。 现在我想用适当的方法列出所有注册的路线。 如果我已经执行了 app.get('/', function (…) { … }); app.get('/foo/:id', function (…) { … }); app.post('/foo/:id', function (…) { … }); 我想检索一个对象(或者与之相当的东西),例如: { get: [ '/', '/foo/:id' ], post: [ '/foo/:id' ] } 这是可能的,如果是这样,怎么样? 更新:同时,我创build了一个名为get-routes的npm包,它从给定的应用程序中提取路线,从而解决了这个问题。 目前,只支持Express 4.x,但我想现在这没问题。 只是供参考。

代理与express.js

为了避免同域AJAX问题,我希望我的node.js Web服务器将所有请求从URL /api/BLABLA到另一个服务器,例如other_domain.com:3000/BLABLA ,并返回给用户与此远程服务器相同的事情服务器透明地返回。 所有其他URL(在/api/*旁边)都要直接提供,不需要代理。 如何通过node.js + express.js来实现这一点? 你能给一个简单的代码示例吗? (Web服务器和远程3000服务器都在我的控制之下,都使用express.js运行node.js) 到目前为止,我发现这个https://github.com/nodejitsu/node-http-proxy/ ,但阅读文档没有让我更聪明。 我结束了 var proxy = new httpProxy.RoutingProxy(); app.all("/api/*", function(req, res) { console.log("old request url " + req.url) req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part console.log("new request url " + req.url) proxy.proxyRequest(req, res, { host: "other_domain.com", port: 3000 }); }); 但没有什么是返回到原来的Web服务器(或最终用户),所以没有运气。

req.body在post上为空

突然间,这一切都发生在我所有的项目上。 每当我在nodejs中使用express和body-parser req.body做一个文章是一个空对象。 var express = require('express') var bodyParser = require('body-parser') var app = express() // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded()) // parse application/json app.use(bodyParser.json()) app.listen(2000); app.post("/", function (req, res) { console.log(req.body) // populated! res.send(200, req.body); }); 通过阿贾克斯和邮递员,它总是空的。 但是通过curl $ curl -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:2000/ 它按预期工作。 我试着在前者手动设置Content-type : application/json ,但是我总是得到400 bad request 这一直使我疯狂。 我以为是在body-parser中更新了一些东西,但我降级了,没有帮助。 任何帮助表示感谢,谢谢。

Express和hapi如何相互比较?

从Web应用程序devise和开发的angular度来看,Express和Hapi如何相互比较? 对于基本的例子,他们看起来很相似,但我有兴趣了解更多关于整体应用程序结构的关键差异。 例如,据我所知,Hapi使用不同的路由机制,不考虑注册顺序,可以做更快的查找,但比Express有限。 还有其他重要的区别吗? 还有一篇关于selectHapi(通过Express)开发新的npmjs.com网站的文章,这篇文章指出:“Hapi的插件系统意味着我们可以隔离应用程序的不同方面和服务,以允许微服务未来,另一方面,Express需要更多的configuration才能获得相同的function“,这究竟意味着什么?

如何在Express中设置自定义图标?

我最近开始在Node.js中工作,在app.js文件中有这样一行: app.use(express.favicon()); 现在,我如何设置我自己的习惯favicon.ico?

在express中使用app.configure

我发现了一些代码,他们设置快递,而不使用app.configure ,我想知道,使用app.configure没有环境说明符和不使用它之间的区别是什么? 换句话说,这有什么区别: var app = require(express); app.configure(function(){ app.set('port', process.env.PORT || config.port); app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */ app.use(express.bodyParser()); app.use(express.static(path.join(__dirname, 'site'))); } 和这个: var app = require(express); app.set('port', process.env.PORT || config.port); app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */ app.use(express.bodyParser()); app.use(express.static(path.join(__dirname, 'site'))); 谢谢。

将created_at和updated_at字段添加到mongoose模式

有没有办法将created_at和updated_at字段添加到mongoose模式中,而不必每次都传递新的MyModel()被调用? created_at字段将是一个date,并且仅在创build文档时添加。 只要在文档上调用save(),updated_at字段就会用新的date更新。 我在我的模式中试过这个,但是除非我用expcitly添加它,否则这个字段不会显示出来: var ItemSchema = new Schema({ name : { type: String, required: true, trim: true } , created_at : { type: Date, required: true, default: Date.now } });