Tag: 表示

在heroku中没有express.static的子目录

我看到一些非常奇怪的行为,其中一些文件正确地由我的express / node服务器(使用express.static() )返回,而不是子目录中的文件。 令人沮丧的是,它在本地使用节点或工头工作正常,它不会在heroku上工作。 这个要点在这里有主要的文件,我的应用程序结构如下所示: -app – index.html – img/ – base.png – sub/ – sub.png – scripts – base.js – sub/ – sub.js – css – base.css – sub/ – sub.css – server – app.js index.html和base。*文件都加载正常,它只是404.的sub。*文件似乎奇怪express.static会去1级深,但不是2 我已经尝试了一些不同的configuration,包括这个stackoverflow答案 。 我必须错过简单的东西。 谢谢您的帮助。 更新: 当我console.log下面的服务器上启动heroku,我得到: path.join(__dirname, '../app') /app path.join(__dirname, '../app') = /app path.join(__dirname, '/../app') /app/app path.join(__dirname, […]

摩卡testing超时,如果超过4个testing一次运行

我有一个我正在用Mochatesting的node.js + express web服务器。 我在testing工具中启动Web服务器,并连接到MongoDB以查找输出: describe("Api", function() { before(function(done) { // start server using function exported from another js file // connect to mongo db }); after(function(done) { // shut down server // close mongo connection }); beforeEach(function(done) { // empty mongo collection }); describe("Events", function() { it("Test1", …); it("Test2", …); it("Test3", …); it("Test4", …); […]

如何在Nodejs应用程序中共享configurationvariables

我是JavaScript / Nodejs的新手。 如何在Nodejs应用程序中共享我的configuration。 例如:我有一个config/config.coffee path = require("path") module.exports = { development: db: 'mongodb://localhost/hello' root: rootPath = path.normalize(__dirname + '/..') } 我在app.coffee包含了config.coffee 。 express = require("express") # Load configurations env = process.env.NODE_ENV || 'development' config = require("./config/config")[env] require('./config/boot') app = express() 现在我想包含configvariables到我的config/boot.coffee 。 我该怎么做? 我不想重新将config/config.coffee包含到config/boot.coffee 。 这是我的config/boot.coffee文件: env = process.env.NODE_ENV || 'development' config = require("./config")[env] […]

阻止节点js路由

我正在写节点的JS应用程序,我想阻止我的应用程序的一些url(closures所有用户)。 有可能吗? 注意:我想closures/注册和authentication。 更新:我使用express js框架

Express中的app.get(name)与app.get(path,,callback)

我是Express的新手,从API文档看来,我们似乎有两个app.get()方法来获取variables的值,另外我们大多数人都熟悉处理http GET请求。 这两者有什么区别? Express如何知道我们想要哪一个? 他们实际上是相同的function?

如何在Sails.js策略中使用error handling程序callback?

问完这个问题之后 ,我发现我可以在sails应用中添加一个callback数组到一个端点,如下所示: 文件: /api/policies/somepolicy.js module.exports = thisIsAnArrayOfCallbacks; 这个工作正常,而thisIsAnArrayOfCallbacks每个成员是一个接受req , res和next作为参数的函数。 控制器调用执行数组中的所有函数,并以正常stream程获得预期结果。 但是,当使用一个errorHandlercallback函数(如本例中的callback函数)需要一个额外的err参数时,它不能按预期工作:只有express的版本app.get('/path', thisIsAnArrayOfCallbacks)允许errorHandler获取该exception并向客户端报告适当的响应,但在使用sails方式时,不会调用errorHandler函数,并且会在响应中引发exception。 我怎样才能获取err参数或捕获thisIsAnArrayOfCallbacks的函数之一发生的exception发送一个适当的响应(一个自定义的一个是首选的)到客户端? 提前致谢。

在Express中使用app.set和app.value

在我的app.js文件中,我使用app.set(valName, value)将多个configuration值传递给我的路由。 然后我将应用程序传递给我的路线: app.use('/', require('./routes/index')(app)) ; 然后,我可以轻松地使用app.get(valName)来检索路线中的值。 我的问题是:只是使用app.valName = value;是不是更容易app.valName = value; 然后只需访问app.valName中的app.valName ? 我必须使用.set和.get ? 或者这会违反什么?

Node.jsexpression嵌套的路由

我是Node.js和Express的新手,并试图通过一些教程。 我能够得到基本的路由工作一级深(例如, http://localhost/help ),但是我有困难让它工作两层深(例如, http://localhost/help/test )。 以下是app.js中的相关行: var help = require('./routes/help'); // also tried this //var help_test = require('./routes/help/test'); var app = express(); app.use('/help', help); app.use('/help/test', help.test); // also tried this //app.use('/help/test', test); //app.use('/help/test', help_test); 在routes目录下,我有两个文件:index.js和test.js。 index.js包含: var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { res.send('help'); }); module.exports = router; test.js文件包含: […]

从expressjspathpath中排除单词

有没有办法使它不符合/api和/assets ? router.use("/:group", groupRouter); 我尝试了以下,但它没有工作。 router.use("/:group(!(api|assets))", groupRouter); 此外,我尝试在这里使用正则expression式,但节点给了我一个错误,说它期望callback,而不是一个正则expression式。 注意:显然.use也不会捕获group ,但在我的情况下这不是必要的。 我只需要它来匹配除了几个字以外的所有内容。

我是否应该在每个路由模块文件中重复所有这些要求?

我正在构build一个更大的Web应用程序,现在已经开始意识到在自己的文件中使用模块化路线。 但是,当我这样做的时候,我注意到我必须重申许多要求…在我开始搬出自己的文件的路线之前,我有我的主要应用程序中约20个必需的模块,处理从数据库到电子邮件的一切… 许多这些模块用于大多数路由…这意味着我必须在每个路由模块文件中重复15-20个需求。 问:这似乎是一个重复的代码很多,但也许这是正确的方式来做到这一点? 至less官方NPM模块似乎以这种方式工作。